我现在用的多单证我发现在互联网上试图用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没有了,我想知道如果我的错误可能来自这一步骤的误解。谢谢 !
当您添加的消息长度(填充后)MD5使用little-endian的,但SHA256使用大端。垫衬是不一样的。