MD5是最常见的摘要算法,速度很快,生成结果是固定的128 bit字节,通常用一个32位的16进制字符串表示。
1、生成md5格式
示例代码:
import hashlib
def computeMD5(message):
m = hashlib.md5()
m.update(message.encode(encoding='utf-8'))
return m.hexdigest()
str = 'this is a md5 Test.'
print(computeMD5(str))
运行效果:
2、验证是否是md5格式
md5 只是一个 32 位十六进制数字的字符串,可以添加到表达式中的只是检查“32 位数字”。
示例代码:
import hashlib
import re
def computeMD5(message):
m = hashlib.md5()
m.update(message.encode(encoding='utf-8'))
return m.hexdigest()
str = 'this is a md5 Test.'
ret = computeMD5(str)
print(len(ret), ret)
# 使用正则验证是否为md5格式
res = re.findall(r"([a-fA-F\d]{32})", ret)
print(res)
# 注意:md5加密后除了是16进制表示外,长度还是32
if re.findall(r"([a-fA-F\d]{32})", ret) and len(ret) == 32:
print(f"{ret}是md5加密的格式!")
else:
print(f"{ret}不是md5加密的格式!")
ret2 = ret + 'aa'
if re.findall(r"([a-fA-F\d]{32})", ret2) and len(ret2) == 32:
print(f"{ret2}是md5加密的格式!")
else:
print(f"{ret2}不是md5加密的格式!")
运行结果: