密码学

2017-09-16  本文已影响18人  懒惰的习惯

开发中总会遇到许多关于密码加密的问题,现在简单总结一下

1、RSA加密

计算机刚开始的加密方式是对称加密,也就是加密、解密使用了同样的规则(简称“密钥”)。

也就是说这里面密钥的传递成为数据解密的关键,但又容易被截取,所以后来就出来了RSA加密:
使用两把不同的密钥对数据进行加密、解密,同样能达到以上加密方式的效果,却又减少了密文被破解的可能性。这里两把密钥分别称为:公钥和私钥。

这样一种对数据进行加密、解密的方式就是非对称加密,用三位数学家的名字头表示,分别为R、S、A,所有非对称加密又被成为RSA加密。

2、哈希(散列)函数

一般来说,我们现在用得最多的就是这种方式的加密:MD5、SHA1、SHA256等

MD5的实现原理:

MD5现在在http://www.cmd5.com/很容易就能得到加密后的结果,同理也能反推明文。这时我们的处理办法一般是加盐、HMAC

这里HMAC有一个应用就是设备锁,当应用第一次登录时,会将盐保存在本地,这时如果在另外一台机子上登录账号,而又被锁住,就不能从服务器上得到盐,从而无法登录。

3、AES加密

这是一种高级加密方式,美国联邦政府、iOS系统就是通过这种方式加密的,比如说钥匙串。这是一个对称、块加密方式。块就是密码长度过长可以通过分割,然后再对分割后的小块进行加密,这里密钥长度和数据的分组长度是相互独立的。

http://rainman.me/47.html
http://blog.csdn.net/honlangwu/article/details/52621250

上一篇 下一篇

猜你喜欢

热点阅读