密码哈希的盐是否应该"哈希"?

Sha*_*ala 6 delphi security passwords

我认为这可能是一个愚蠢的问题,但我已经对我应该做的最好的事情感到困惑.

在对密码哈希进行salting时,盐是否也应该被散列或保留为明文?

注意:我在SHA-256中散列密码,Salt是预定义的字符串,因为一次只能存储一个密码.

TIA

克里斯(Shamballa).

Ala*_*nse 15

没关系.

盐的目的是防止预计算攻击.

无论哪种方式,对盐进行散列或单独使用它,每次都会导致相同的数据被添加为盐.如果你对盐进行散列,你所做的只是改变盐.首先对它进行散列,然后将其转换为另一个字符串,然后将其用作salt.没有理由这样做,但如果你这样做,它就不会有任何错误.

您只需要保持一致并且每次都使用相同的方法,否则最终会得到不同的密码哈希.


Mar*_*ams 7

你不能哈希盐,因为哈希是一种方式.您需要salt,以便在散列之前将其添加到密码中.你可以加密它,但没有必要.

关于salt的关键是每个密码都应该有自己的盐.理想情况下,每种盐应该是独特的,但随机也是好的.因此,盐应足够长,以使其对每个密码都是唯一的.

如果所有的盐都是相同的,那么对于破解者(谁可以看到你的哈希值)来说很明显,哪些帐户具有相同的密码.哈希值将是相同的.这意味着如果他们破解了一个密码,他们就会获得多个帐户而无需额外的工作.破解者甚至可能针对这些帐户.

您应该假设破解者将获得salt和hash值,因此哈希算法必须是安全的.

任何盐都可以防止使用现有的预先计算的彩虹表来破解你的哈希值,并且每个帐户都有一个独特的盐可以消除你的破解者使用你的盐预先计算他们自己的彩虹表的愿望.