Algorithm 我如何在sha family中填充此消息

Algorithm 我如何在sha family中填充此消息,algorithm,hash,padding,sha,Algorithm,Hash,Padding,Sha,我在试着理解沙家的情况 填充的消息abc是616263800000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000018 a=61,b=62和c=63我明白了18表示十六进制的24,即abc=>3.8 8和整个零是什么意思 感谢您的回答,以扩展其他人的评论。SHA填充将消息扩展到下一个块边界。在消息末尾添加一个1位(不是字节),后跟零位,直到块末尾的64位

我在试着理解沙家的情况

填充的消息
abc
616263800000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000018

a=61
b=62
c=63
我明白了
18
表示十六进制的
24
,即
abc=>3.8

8和整个零是什么意思


感谢您的回答,以扩展其他人的评论。SHA填充将消息扩展到下一个块边界。在消息末尾添加一个1位(不是字节),后跟零位,直到块末尾的64位。使用块的最后64位以二进制形式保存消息的长度

您的垫块由以下部分组成:

616263 : "abc" - the message text.
8      : "1000" - the 1 bit to start the padding, followed by padding zeros.
0...0  : The rest of the padding zero bits.
0000000000000018 : 64 bit message length, 24 bits in this case.

如果消息在块边界的65位内结束,则填充需要包含一个完整的额外块。

我了解了,所以我正在共享。我们正在添加1,所以在八位10000000中表示十六进制的80。和其他零来完成64字节的填充块。抱歉,还有另一个问题。盐呢?这和填充相似吗@Rossumsate的用途不同。它在散列之前应用。不只是散列消息,而是散列与salt连接的消息。如果两个人选择相同的密码,那么密码将不同,因此哈希将不同。维基百科上有一篇文章,所以它就像真正的盐。由于盐的用量不同,菜的味道也不同。所以散列值改变是因为不同的盐哈?我想我明白了。非常感谢。顺便说一句,我的英语很抱歉。这不是我的母语,所以我不能有效地使用。