我正在寻找一种方法在Python中“将'1位'附加到消息”,以便重新创建提到here的MD5算法。
这就是我所做的,但问题是msg
实际上是一个字符串:
msg.append(0x01)
while len(msg)%56!=0:
msg.append(0x00)
我该怎么办?
答案 0 :(得分:0)
使用chr
将字节值转换为字符串。然后,您可以将它们附加到msg
。
msg += chr(0x01 << 8)
while len(msg)%56 != 0:
msg += chr(0x00)
在Python 2.7中,ASCII字符串中的每个字符都是8位大。因此,使用这种方法,您每次都不会真正添加“1位”。这就是为什么有必要将1次参数左移八次。否则,您会将0b00000001
添加到字符串而不是所需的0b10000000
。