1. 什么是MD5
MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。
2. 算法原理
MD5以512位分组位处理单位,每一个分组又可以划分为16个32位子分组,经过一系列算法处理,算法输出4个32位分组,即4 * 32 = 128位散列值。
3. MD5应用
3.1 一致性校验
用于文件传输,来确保接收的文件和传输的文件的一致性,防止在传输过程中被篡改。
3.2 数字签名
支付领域应用MD5,保证支付信息不会被篡改。
3.3 安全访问认证
设计用户登录时,用户密码如果明文存入数据库,就存在被泄露的风险。因为MD5加密是不可逆的,对用户密码进行MD5加密存入数据,就可保证密码不会被泄露。
4. 获取文件的MD5
获取文件的MD5,首先要读取文件内容。把文件内容做输入,MD5处理之后输出文件的MD5。这样相同的文件就会有一致的MD5。
要注意的是读取文件的方式要选择二进制读取方式。如果涉及Window上传文件到Linux服务器,上传方式也要选择二进制方式。这样在Window和Linux对同一个文件获取的MD5才会一致。