我需要一个小于SHA-256哈希值的十六进制表示形式的正常长度的十六进制令牌。

我应该使用前几位还是后几位?其中哪个包含的熵最大?

#1 楼

如果采用SHA-256输出的第一位或最后一位有任何区别,那么这将被视为严重损害SHA-256的安全性。目前,SHA-256中尚无此类弱点。因此,据我们所知,您可以使用所需的任何位。

如果您需要更多的“管理”答案,请查看SHA-224(也在FIPS 180-3中指定) 。这是一个具有224位输出的哈希函数,NIST定义了该函数以便“匹配”(从管理上来说)3DES所谓的112位安全性。他们通过采用SHA-256,更改常规IV并截断输出来定义SHA-224。对于截断,他们采用了前224位。如果对NIST有好处,那么对您也有好处:抓紧头几个脚。

评论


$ \ begingroup $
他们只声称头几位很强吧? crypto.stackexchange.com/questions/3153/…实际上,使用最后一位会损害安全性吗?
$ \ endgroup $
–起搏器
2012年7月9日19:33



$ \ begingroup $
@Pacerier-否。没有理由相信使用最后一位会损害安全性(并且非常有充分的理由认为使用最后一位不会有害)。您误读了该链接的内容。
$ \ endgroup $
– D.W.
13-10-23在6:44