python 中的 md5 十六进制到二进制

md5 hex to binary in python

我阅读了很多关于在 SO 中将十六进制转换为二进制的答案。我尝试用 md5:

实现它
import hashlib

c = hashlib.md5("123hello123".encode('ascii'))
print(c.hexdigest())
for _hex in c.hexdigest():
    _hex = int(_hex, 16)
    print(bin(_hex)[2:], end="")

我得到输出:

b303fa684382db471658016690101792 1011110111111101011010001001110001011011011100111111010110000111011010010101111100110

当我在在线转换器中转换时,我得到:

10110011000000111111101001101000010000111000001011011000000000000000000000000000000000000000000000000000000000000000000000000000

正确答案是什么?我应该如何更正我的程序?

bin 函数不包含前导零,而每个十六进制字符始终表示 4 个二进制数字。 bin(_hex)[2:].rjust(4,"0") 会起作用。