Tip:
Highlight text to annotate it
X
保存你的密码的哈希值是完全安全的吗? 不!
抱歉,把你带入这条路,但我们还有很多事要做
问题是,有极少数的良好的散列算法
这样的事情,人们会使用。
让我们假设我们使用的是SHA256,因为这是一个相当不错的哈希算法。
如果有人去,并创建一个映射的哈希值,这个词的每一个字,
这将是一个问题,因为记得这个散列问题的整体实力
是从哈希得到的纯文本,导致该散列,这真的很难。
如果你有 H(a) -- a的哈希值, 你非常难以通过哈希值找出原来其实是a
但是如果你已经计算好了所有单词的哈希值
和所有你必须做的是计算一次,那么你就创建了一个逆算表,
一旦有人有这个表计算一次,所有的这些话,他们就完成了。
如果您创建了一个映射表格,里面有原字符和其对应的哈希值
突然间,你会得到一个数据库的一堆SHA256密码。
您可以查找密码立即是什么。
此表的名称。它已称为"彩虹表"。
有这些东西,这些映射,这些数据库的密码哈希值版本
明文密码。它们的存在。
您可以为您选择的哈希算法的彩虹表谷歌
和下载该哈希表或下载该映射,把它变成一个哈希表,
而你要走好。
有非常简单的方法去解决此问题。
您可能还记得从我们 cookie 的方法我们要做是添加的一些秘密。
我们不想和再次添加相同的秘密。
否则你就基本上易受同样非常类似的技术。
相反,我们所做的是我们使用所谓的"攻击"。
所以在我们的用户表中我们收藏我们的名字和我们收藏的密码哈希值。
而不存储只是密码的哈希值,我们要向其中添加一个秘密
类似于我们是如何做的 cookie,但这不是真的是秘密。
我们只要说将此哈希平等
我们的密码加盐的哈希函数。
所以这看起来非常类似于我们怎么处理 cookie,正确吗?
我们使用 HMAC,和我们有一个密码和一个秘密。
除盐是只是一些随机的字符我们组成。
你可以弥补它们,并将它们存储在哈希值字段中,以明文。
其实在这一领域我们哈希 — — 和我们只是缩写,为"H"— —
和右它,我们就会有盐。
这样做是这工作,可以防止此快速查找
因为突然间我们已经添加了这些随机字符串。
而不是设置 H(a) =,我们必须搞清楚什么是 H(a) + 盐。
突然,表是完全无效的。
我们您存储用户,这就是你可以做的算法的类型。
现在,这一课,我想你把有关此自己做很难。
作为与所有加密,您应该可能不执行它自己,
因为人们都认为这。他们已经安全地完成它。
你还没有资格这样做。
我想你把有关使用第三方库,很难
因为很多第三方库也做错。
基本上,认为很难。您想要搞清楚。
有一对夫妇更多的东西,我会告诉你去寻找
当您是要评估第三方库,但很多人都真的搞砸这了。
你不想只是盲目地信任他们。
我宁愿你做你自己知道如何去做它比你盲目地信任第三方库
但你可以有的最好的知识是什么在中查找
第三方身份验证库。
让我们继续和实现的哈希算法和盐密码,一些 na誰ve 函数
所以你可以看到流的工作方式。
然后我们将讨论一些您应该寻找的东西
当您是要评估某人的办法。