0

我正在寻找一种在 Python 中“将 '1' 位附加到消息”的方法,以便重新创建此处提到的 MD5 算法。

这就是我所做的,但问题是它msg实际上是一个字符串:

msg.append(0x01)         
while len(msg)%56!=0: 
     msg.append(0x00)      

我应该怎么办?

4

1 回答 1

0

用于chr将字节值转换为字符串。然后你可以将它们附加到msg.

msg += chr(0x01 << 8)
while len(msg)%56 != 0:
    msg += chr(0x00)

在 Python 2.7 中,ASCII 字符串中的每个字符都是 8 位大。因此,使用这种方法,您并不是每次都真正添加“1 位”。这就是为什么有必要将 1 参数左移八次。否则,您将添加0b00000001到字符串而不是所需的0b10000000.

于 2013-03-21T12:19:13.313 回答