1. MD5信息摘要算法
MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。这套算法的程序在 RFC 1321标准中被加以规范。1996年后该算法被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如SHA-2。2004年,证实MD5算法无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。
MD5是信息学中广用的哈希算法。
MD5算法的原理可简要的叙述为:MD5码以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
2. MD5应用
文件一致性校验:用于校验本地文件和远程传输来的文件内容的一致性,确保文件内容传输无误。
3. MD5的特点
- 任意数据文件的MD5数值长度都是固定的,为32位十六进制数据。
- 对原始数据进行修改,哪怕是微小的修改都会导致文件的MD5值发生较大的变化。
- 已知原始数据和MD5码,很难找到一个相同MD5的数据,即伪造数据较难
4. python中的hashlib模块
Python的hashlib提供了常见的摘要算法,如MD5、SHA1、SHA224、SHA256、SHA384、SHA512等算法。什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。
导入hashlib模块。
import hashlib
内置函数得到文件的
'''得到十六进制编码的MD5'''
hashlib.md5().hexdigest()

1590

被折叠的 条评论
为什么被折叠?



