将1位添加到字符串

时间:2013-03-21 10:50:19

标签: python string md5 bit-manipulation

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

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

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

我该怎么办?

1 个答案:

答案 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