python md5 加密
链接
内容
md5
- Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992)。
特点
MD5算法具有以下特点:
1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
2、容易计算:从原数据计算出MD5值很容易。
3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
应用
- 一致性验证
- 数字签名
- 安全访问认证
原理
对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
总体流程如下图所示,
表示第i个分组,每次的运算都由前一轮的128位结果值和第i块512bit值进行运算。
MD5算法的整体流程图
- 填充
- 初始化变量
- 处理分组数据
- 输出
使用
#!/usr/bin/env python
import hashlib
def md5(src):
mymd5 = hashlib.md5()
mymd5.update(src)
return mymd5.hexdigest()
if __name__ == "__main__":
print md5("hello")
- 输出 5d41402abc4b2a76b9719d911017c592