我正在尝试使用在互联网上找到的多个文档在C语言中对算法md5和sha256进行编码。 我的md5似乎工作正常,但是我的sha256却不行。
这是我要找出的问题,这两个算法的填充步骤完全相同还是我错过了什么?
echo -n toto | ./md5
01110100 01101111 01110100 01101111 10000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000
00100000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
f71dbe52628a3f83a77ab494817525c6
echo -n "toto" | ./sha256
01110100 01101111 01110100 01101111 10000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000
00100000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
cda8272de630c5dd9770c5f5030d2d53650b6e986229d21291c5803ff4da592c
这是填充后的数据,md5可以,但是sha256不能,我想知道我的错误是否可能来自对这一步骤的误解。 谢谢!
答案 0 :(得分:0)
当添加消息长度时(填充后),MD5使用低位优先,而SHA256使用大位优先。填充不同。