一尘不染

与MYSQL sha1相关的“盐”是什么?

mysql

与MYSQL sha1相关的“盐”是什么?我不知道与sha1密码加密相关的盐是什么?有人可以解释一下吗?


阅读 478

收藏
2020-05-17

共1个答案

一尘不染

盐是添加到您想要以一种哈希方式加密的密码(或其他机密)中的值。这意味着它可以在密码之前,之后或内部,只要它的位置和值与给定提供的密码一致。

它的作用是减轻字典攻击(基本上是不加盐就预先加密的常见密码的字典)从被用来“猜测”一种单向密码,只要攻击者不知道哈希。如果每个密码都有不同的哈希值,那么攻击者将很难创建一个针对破解密码而优化的字典(他们将需要一个字典来存储每个单独的盐,他们还需要知道盐在每个密码中的位置)。

当然,要使所有这些都适用,攻击者必须首先将密码的哈希值放在首位。这与通过某些输入提示猜测密码来攻击密码无关。

特别是关于MySQL,如果您在哈希密码时提供了一个盐,请确保记录该盐在某处。然后,当用户尝试进行身份验证时,您可以将记录的盐值与密码结合起来(crypt例如在致电期间),如果结果哈希匹配,则他们输入了正确的密码。(请注意,密码的哈希值绝不会逆转;这是一种方式。)

2020-05-17