【问题标题】:still in trouble with MD5MD5 仍然有问题
【发布时间】:2015-11-12 14:08:52
【问题描述】:

我用 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

第一种:带数据块的MD5算法

第二个:使用 Padding 创建额外的块

第三个:MD5 算法与填充块

对吗?

【问题讨论】:

  • oh.. DAMN.... 我发现了错误.. 文件大小的 64 位表示的值必须是 Bit,而不是 Byte.. ...... :) :) :) 所以,就我而言,计数器不是 64。它必须是 64*8 (512)。

标签: c++ md5


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多