在字符串中添加1位数据
我想在Python中找到一种方法,把一个'1'的位(bit)加到消息后面,以便重新创建MD5算法,具体可以参考这里。
我已经做了一些尝试,但问题是msg
实际上是一个字符串:
msg.append(0x01)
while len(msg)%56!=0:
msg.append(0x00)
我该怎么做呢?
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
。