什么是MD5

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是MD5相关的知识,希望对你有一定的参考价值。

什么是MD5码呀?

MD5是一种散列算法(Hash function),又称为哈希算法、消息摘要算法,它的作用是获取数字信息的特征(我们有时称之为“信息指纹)。一个任意长度的任意数字信息,通过散列算法运算后,会产生一串固定长度(比如160bit)的数字信息,称为散列值(或哈希值、消息摘要)。安全的散列算法有这样的特点:

⑴ 两个不同数字信息产生同样的 散列值的概率是非常小的(小到现实中几乎无法发生);

⑵ 仅从散列值无法演推出原信息;

⑶ 原信息的微小改变,哪怕只改变一位(bit),将导致散列值的很大变化。

数字签名要使用散列值。MD5是一种常用散列算法,另外目前常用的散列算法还有SHA-1。两个不同的数字信息产生相同的散列值就是人们所说的“散列值碰撞“。散列算法是一个将无穷维空间的信息映射到有限维空间的变换,学过数学的人都知道这不是一个一一对应的变换。实际上一个散列值可能对应有无穷多个数字信息,换言之,会有无穷多个数字信息产生同样一个散列值。这点是研究密码的人众所周知的,而不像有些媒体所说的那样,散列值是唯一的。

你可以自己尝试MD5在线生成工具:http://www.okman.cn/tools/md5.htm
比如:数字1,它对应的MD5_32A的值为:C4CA4238A0B923820DCC509A6F75849B
参考技术A 就是把一个任意长度的字节串变换成一定长的大整数
原来的字节串如果改变的话,这个整数就会变
可以用于文件效验

参考资料:http://baike.baidu.com/view/7636.htm

参考技术B 简单来说是乱码.MD5 395289529389582 <<

以上是关于什么是MD5的主要内容,如果未能解决你的问题,请参考以下文章

javaSE 第77节课

加密算法

javaSE 第77节课

MD5加密方式

密码HASH特点

MD5公钥私钥加密认证