SHA还让你能在不知道原始字符串的情况下对其进行比较。例如,假设Gmail遭到攻击,攻击者窃取了所有的密码!你的密码暴露了吗?没有,因为Google存储的并非密码,而是密码的SHA散列值!你输入密码时, Google计算其散列值,并将结果同其数据库中的散列值进行比较。

Google只是比较散列值,因此不必存储你的密码! SHA被广泛用于计算密码的散列值。这种散列算法是单向的。你可根据字符串计算出散列值。

但你无法根据散列值推断出原始字符串。

这意味着计算攻击者窃取了Gmail的SHA散列值,也无法据此推断出原始密码!你可将密码转换为散列值,但反过来不行。

SHA实际上是一系列算法: SHA-0、 SHA-1、 SHA-2和SHA-3。本书编写期间, SHA-0和SHA-1已被发现存在一些缺陷。如果你要使用SHA算法来计算密码的散列值,请使用SHA-2或SHA-3。当前,最安全的密码散列函数是bcrypt,但没有任何东西是万无一失的。

AMY:中国的王小云教授破解了sha和md5码,sha和md5的不可逆神话被打破。

results matching ""

    No results matching ""