散列算法和加密算法的区别
(2014-02-08 14:55:41)分类: VBA |
当存储加密后的密码时,这个密码可能会被解密。HASH算法是单向的,所以可以用来把明文密码散列后存储。
加密算法是双向的,由加密后的密文可以解密得到原文,而散列算法从数学上来说无法从密文得到原文。AES是加密算法,MD5,SHA1是散列算法。
对MD5可以用冲突collision破解,SHA256对冲突比较强壮。
Public Function EncryptString(strText As String, strKey As String) As String
End Function
Public Function DecryptString(strText As String, strKey As String) As String
End Function
这2个函数可以用来进行加密和解密。
Public Function EncryptHash(ByVal strText As String) As String
End Function
这个可以用来得到strText的哈希值。
做哈希时,最好产生一段随机字符串和原文连接后在做哈希,这叫做salt。可以防止基于彩虹表的攻击。