如果可以访问数据库,那么盐和散列有什么意义?

dpp*_*dpp 9 language-agnostic security hash salt data-retrieval

我刚刚学会了散列的概念("嘿!别忘了盐!")并使用salt来确保密码安全.

散列它是一种单向加密(实际上不是加密而是散列),所以它不能被反向设计.在散列之前,Salting正在为密码添加前缀或附加随机创建的值,因为哈希(只是哈希)中的问题是,某些天才提供了字典中的单词哈希表,以便他们只是将该字典中的哈希值与用户的表从数据库登录 - W-wait?我从数据库中说过表吗?所以这意味着有人可以访问数据库,所以我们必须使用salt?如果是这样,那么如果黑客已经有权访问数据库,为什么黑客会恢复密码呢?如果我是他,我会从数据库中获取我想要的所有细节,如果我可以通过窗户进入房子,为什么我会使用从房子里偷来的钥匙打开门?

那么,为什么哈希呢?为什么盐?我不明白.拜托,有人帮帮我.

提前致谢.

重要提示:我不反对散列或腌制,我只想澄清一些事情.

aio*_*obe 11

如果是这样,那么如果黑客已经有权访问数据库,为什么黑客会恢复密码呢?

原因很多.以下是一些:

  1. 人们重复使用他们的密码,因此不会泄漏每个人的真实密码会限制这种攻击的影响.

  2. 如果没有真正的密码,黑客仍然无法登录,也就是说,在黑客系统上发布新条目.

  3. 谁说所有信息都存储在数据库中?如果数据库仅由用户名和散列/盐渍密码组成,该怎么办?然后,了解内容并没有多大帮助.


dec*_*eze 5

拥有数据库中的用户记录并不一定意味着您有权访问该数据库。通过网站中的一些泄漏(你好,SQL 注入),您可能能够访问您不应该访问的数据,而不必损害整个服务器。备份处理不当、共享服务器、无能或恶意的员工都可能使这种情况成为可能。

此外,可能更重要的是,您需要保护客户在其他网站上的密码。不幸的是,人们到处重复使用他们的密码。如果您的小型聊天室数据库遭到破坏,人们在银行网站上的密码也可能会受到破坏。