首先是盐还是哈希?

use*_*584 14 hash salt

好吧,我知道这可能很简单,但我似乎无法在任何地方找到答案.假设我有以下内容:

Password: "mypassword"
Salt: 1234567
Run Code Online (Sandbox Code Playgroud)

腌制的想法是做什么样的hash(password + salt)hash(password) + salt?我的猜测是,只有前者才有意义,但我只是想确保我不会错过任何东西.

请原谅我的无知.

Joh*_*tie 17

你已经拥有它,它是前者.

如果您只是连接了salt和hash,那么攻击者可以简单地删除"salt"并使用彩虹表.通过对明文+盐进行散列,不能将盐分解出来.


leo*_*loy 12

实际上,它是salt + hash(salt+password)(Salt是哈希计算的一部分 - 但你必须保持清晰)

  • 为什么你需要第一盐?如果黑客会忽略它,这不是毫无意义吗? (2认同)

Igo*_*nko 6

哈希(密码+盐).如果在散列之后连接salt,则连接很容易可逆,并且在反转密码的散列方面没有任何困难(使用彩虹表).

也就是说,有些系统同时执行这两项操作,例如Django在数据库中存储salt $ hash(salt + password).这样就可以在一个地方提供检查密码与哈希相关所需的每一段数据.