1、直接明文保存数据。
2、使用对称加密算法来保存数据,比如DES、3DES、AES、RC2、RC4、RC5和Blowfish等算法。加解密使用相同的秘钥。
==》获取密钥破解
3、使用非对称加密算法来保存数据,比如MD5、SHA1等单向HASH算法,使用这些算法后,无法通过计算还原出原始密码,而且实现比较简单。
==》利用彩虹表技术建立彩虹表,进行撞库查表破解。
4、特殊的单向HASH算法
在单向HASH算法基础上进行了加盐、多次HASH等扩展,在一定程度上增加破解难度。
==》同样利用彩虹表技术建立彩虹表,进行撞库查表破解。(需要确保“盐”不被泄漏)
5、PBKDF2算法
在HASH算法基础上增加随机盐,并进行多次HASH运算,随机盐使得彩虹表的建表难度大幅增加,而多次HASH也使得建表和破解的难度都大幅增加。
6、bcrypt、scrypt等算法
可以有效抵御彩虹表,使用这两种算法时也需要指定相应的参数,使破解难度增加。