M=Message D=Digit,信息摘要,意思是从一段数据中摘要出一组固定长度的字符。一般这个长度是16byte或者32byte。
MD5不是加密算法,因为如果目的是加密,必须满足的一个条件是加密过后可以解密。但是MD5是无法从结果还原出原始数据的。
最常用的情况就是1.用户下载完文件后,用MD5算法计算下载文件的MD5校验和,然后通过检查与服务器之前提供的校验和是否一致,就能判断下载的文件是否出错或者被修改过了。
2.对用户的密码做MD5后再入库。就算数据泄露,得到数据的人也不知道原始密码是多少。一般都是用户在web的表单中输入密码,输入密码MD5处理后跟数据库中原始密码已被MD5处理后的密码匹对,如果匹配则登录。
实现
对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
MD5加密后的值是128bit的,按4位二进制组合成一个十六进制,所以最后出来的十六进制字符串是32个,比如d3379f609e1aa88da2f50018d4fa218f。
M=Message D=Digit,信息摘要,意思是从一段数据中摘要出一组固定长度的字符。一般这个长度是16byte或者32byte。
MD5不是加密算法,因为如果目的是加密,必须满足的一个条件是加密过后可以解密。但是MD5是无法从结果还原出原始数据的。
最常用的情况就是1.用户下载完文件后,用MD5算法计算下载文件的MD5校验和,然后通过检查与服务器之前提供的校验和是否一致,就能判断下载的文件是否出错或者被修改过了。
2.对用户的密码做MD5后再入库。就算数据泄露,得到数据的人也不知道原始密码是多少。一般都是用户在web的表单中输入密码,输入密码MD5处理后跟数据库中原始密码已被MD5处理后的密码匹对,如果匹配则登录。
实现
对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
MD5加密后的值是128bit的,按4位二进制组合成一个十六进制,所以最后出来的十六进制字符串是32个,比如d3379f609e1aa88da2f50018d4fa218f。