前言
加密算法,根据是否可逆计算出明文,分为可逆加密算法与不可逆加密算法。
这两种类型的加密算法,在网络数据请求中广泛应用,提高网络安全性。其中的可逆加密算法用于加密数据包,保证数据安全,不可逆加密算法用于签名,防止数据篡改。这篇文章介绍不可逆加密算法中的md5,以及其应用场景。
MD5
md5信息摘要算法,一种被广泛应用的密码散列函数,根据数据产生一个128位的散列值。
md5算法具有以下特点:
- md5值长度一致,不管数据量的大小,其产生的md5长度一致。
- 数据的一个小更改,生成的md5就会不一样,可以有效的防止数据篡改
长度一致性
s = "fdasfffffffffffasfsdddddddddddddddddddddddddddddddd"
print(hashlib.md5(s.encode("utf-8")).hexdigest())
print(hashlib.md5('11'.encode("utf-8")).hexdigest())
#输出
7b7e575bd10c3fdab6b7b6e306f2daef
6512bd43d9caa6e02c990b0a82652dca
如上案例,不管是一个长度为2的数据还是长度为51的数据,通过md5计算出来的值长度都是一个128位的值。就算数据再大,通过md5计算出来,其md5的长度都会是128位。
备注:
这里输出的md5字符串长度为32,16进制&