密码加密的方式有哪些


密码加密的方式有哪些

文章插图
以用户为例 , 密码加密的方式如下:
1、直接明文保存 , 比如用户设置的密码是“123456” , 直接将“123456”保存在数据库中 , 这种是最简单的保存方式 , 也是最不安全的方式 。但实际上不少互联网公司 , 都可能采取的是这种方式 。
2、使用对称加密算法来保存 , 比如3DES、AES等算法 , 使用这种方式加密是可以通过解密来还原出原始密码的 , 当然前提条件是需要获取到密钥 。不过既然大量的用户信息已经泄露了 , 密钥很可能也会泄露 , 当然可以将一般数据和密钥分开存储、分开管理 , 但要完全保护好密钥也是一件非常复杂的事情 , 所以这种方式并不是很好的方式 。
3、使用MD5、SHA1等单向HASH算法保护密码 , 使用这些算法后 , 无法通过计算还原出原始密码 , 而且实现比较简单 , 因此很多互联网公司都采用这种方式保存用户密码 , 曾经这种方式也是比较安全的方式 , 但随着彩虹表技术的兴起 , 可以建立彩虹表进行查表 , 目前这种方式已经很不安全了 。
4、特殊的单向HASH算法 , 由于单向HASH算法在保护密码方面不再安全 , 于是有些公司在单向HASH算法基础上进行了加盐、多次HASH等扩展 , 这些方式可以在一定程度上增加难度 , 对于加了“固定盐”的HASH算法 , 需要保护“盐”不能泄露 , 这就会遇到“保护对称密钥”一样的问题 。
5、PBKDF2算法 , 该算法原理大致相当于在HASH算法基础上增加随机盐 , 并进行多次HASH运算 , 随机盐使得彩虹表的建表难度大幅增加 , 而多次HASH也使得建表的难度都大幅增加 。使用PBKDF2算法时 , HASH算法一般选用sha1或者sha256 , 随机盐的长度一般不能少于8字节 , HASH次数至少也要1000次 , 这样安全性才足够高 , 该算法也是美国国家标准与技术研究院推荐使用的算法 。
【密码加密的方式有哪些】

    推荐阅读