仍然遇到MD5问题

still in trouble with MD5

我用 C++ 完成了 MD5 算法的实现,但它不能正常工作...我的哈希值不正确。

仅供理解: 如果我尝试使用 MD5 哈希算法对文件(64 字节)进行哈希处理,则必须发生以下情况:

//    512 Bit(data)     512 Bit(Padding)
//    -------------     ------------- 
//    |xxxxxxxxxxx|     |10000000|64|
//    -------------     -------------
//
//     1 - appended 1 Bit
//     0 - filled with zeros until 8 bytes before end of block
//    64 - 64 bit (8 Byte) representation of size of file

1st: 带数据块的MD5算法

第 2 步:使用 Padding 创建附加块

第三:带填充块的MD5算法

对吗?

64 位表示的值必须以位为单位,而不是字节! 因此,在我的例子中,计数器不是 64。它是 64*8 = 512。