MD5
一:MD5
Message Digest Algorithm 中文意思为消息摘要算法第五版。为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。
MD5简单的理解就是数据采样后精简计算出长度固定的特征码,在一定程度上可以被用来快速判断文件是否完整或经过修改。
MD5算法具有以下特点:
1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
2、容易计算:从原数据计算出MD5值很容易。
3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval等。
二:
1.MD5是不可逆的,不能从md5值转换成元数据,(网上有很多md5转换的网站,这样的网站是将简单的元数据和md5穷尽 然后记录下来)。网上的破解,个人觉得是字典比对,有一个数据库,存储了很多k-v.当这个数据库的数据达到一定量级的时候,很多密码其实包含在里面了,直接找到就行了。
2.存在无数个字符串的MD5值相同。原因是:所有字符串集合A的Size是无穷的,所有MD5的集合B的Size是2^128(因为MD5是128位的),从一个无限集合A映射到有限集合B,那必然存在A的一个无穷子集A1,使得A1的所有元素(字符串)在B中映射到同一个元素,即存在无穷多个字符串,它们的MD5值相同。
三: