MD5加密学习笔记1. 什么是MD5加密MD5:英文全称是 Message-Digest Algorithm 5
Hash 算法的一种
原理:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
2. MD5有什么特点不可逆
原因:由于MD5加密原理一个密码所对应的原文可能有很多个而一个原文只会有一个密码
长度固定
无论原文多少输出的永远16字节
高度离散性
输出的16个字节数据,没有任何规律可言。假如两次的输入只改变一个位,输出的结果也完全不同
抗碰撞性
两个不同输入很难得到一个相同的MD5加密结果
3. MD5有什么用
防止被篡改:1)比如发送一个电子文档,发送前,我先得到MD5的输出结果a。然后在对方收到电子文档后,对方也得到一个MD5的输出结果b。如果a与b一样就代表中途未被篡改。2)比如我提供文件下载,为了防止不法分子在安装程序中添加木马,我可以在网站上公布由安装文件得到的MD5输出结果。3)SVN在检测文件是否在CheckOut后被修改过,也是用到了MD5.
用户密码保护
在数据库记录密码时,并不记录密码本身,而是记录密码经过MD5加密后所产生的结果。当用户输入密码时,只需要把输入的密码再进行MD5校验,再与数据库中的结果进行对比就可以了。这样的好处是,即便数据库被盗,也无法通过结果反推出密码是什么
数字签名
当发布程序时,可以同时发布该程序的MD5,这样在别人下载之后,只需要再经过MD5加密一遍,只需要判断自己下载程序的MD5与发布商的发布的MD5是否相同,从而可以判断程序是否被植入木马。
云盘秒传
有的时候我们在云盘上上传一个很大文件,它几乎很快就传上去了,其实它并不是把文件传上去,它是先计算一下文件的MD5,并且在数据库中查找一个,看看有没有该MD5,如果有的话则直接使用该文件,从而实现文件妙传。
4. MD5解密目前可以说 md5 已经基本被攻破了,一般的 MD5 的碰撞都可以在如下网上获取到
(md5在线解密破解,md5解密加密 (cmd5.com))
(md5解密|md5在线解密 - 全球唯一8位小写+数字全收录的解密网站 (ttmd5.com))
(md5解密 MD5在线解密 破解md5 (pmd5.com))
https://www.win.tue.nl/hashclash/fastcoll_v1.0.0.5.exe.zip (生成指定前缀的 md5 碰撞)