Python中MD5哈希值转换为16字节列表的方法
本文介绍在Python中使用hashlib库时,如何将MD5生成的32位十六进制字符串转换为16字节的原始数据。通过digest方法可直接获取二进制字节,或通过手动解析十六进制字符串将其转换为十进制字节列表,适用于需要固定长度字节处理的场景。
在Python的hashlib库中,调用hexdigest()方法会返回一个长度为32的十六进制字符串。
若直接调用digest()方法,则返回的是包含不可打印字符的16字节二进制数据。
由于MD5算法生成的摘要长度为128位,即16字节,因此需要将Python生成的字符串形式转换为这16个字节的实际数据。
具体实现代码如下所示。
import hashlib
def get_md5(s):
m = hashlib.md5(s)
return m.hexdigest()
def convert_md5(origin):
result = []
s = ""
for i in range(len(origin)):
s += origin[i]
if i %2 != 0 :
int_hex = int(s, 16)
result.append(int_hex)
s = ""
return result
if __name__=="__main__":
sum = get_md5("hello world")
print sum
print len(sum)
cv_sum = convert_md5(sum)
print cv_sum
print len(cv_sum)
程序运行输出结果如下。
5eb63bbbe01eeed093cb22bb8f5acdc3 32 [94, 182, 59, 187, 224, 30, 238, 208, 147, 203, 34, 187, 143, 90, 205, 195] 16
转换后的输出列表展示了每个字节的十进制数值,例如最后一个字节的十六进制值为0xc3,对应的十进制值为195。
以上即为Python中将MD5哈希值转换为16字节列表的完整方法,供读者参考。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









