md5();在线加密

生成MD5

MD5(Message-Digest Algorithm 5,信息-摘要算法 5)简介:

MD5是一种散列算法,又称为摘要算法或哈希(Hash)算法。MD5由其前身MD4改进而来,与其同属一类的算法还有SHA-1等。MD5算法的作用是将不定长的数据经过与、或、非、异或、移位、模幂等运算,产生定长的数据输出,称为散列值。通常情况下,不同的输入得到不同的散列值。优秀的散列算法即使输入差别甚微,都会导致输出大为不同,称为“雪崩效应”。散列算法常与公钥密码体制的加密算法共同使用,以检验数据的完整性。

关于MD5不是加密算法的解释:

加密算法 加密算法是一种用来加密或解密的加密算法(一种数学函数)http://docs.oracle.com/cd/E19857-01/819-0823/agglssry.html

现代密码学将密码体制分为两种,对称密码体制和非对称密码体制(公开密钥加密体制)。MD5不属于两者的任何一种密码体制,不能仅依靠MD5等散列算法进行保密通信。

与加密算法不同的是散列算法没有密钥,并且是单向的,即不能由正向的散列过程推到出逆向的“还原过程”。容易混淆的一点是人们认为加密就是把有具体意义的明文转换成没有意义的密文,这样看来,MD5“确实”是一种“加密算法”。然而对数据加密的目的还不仅于此,不但要让非接收方不能轻易得到明文,还要让接收方有快速的方法得到明文,即为解密。解密和破解是两个概念,解密(decryption)是加密的逆向算法,接收方已知解密密钥,使用解密算法计算得到明文;破解(crack)是在不知道密钥的情况下,采用概率统计、差分分析、暴力尝试等方法得到明文。将MD5值还原成散列前的值只能称为破解,而非解密。

关于王小云教授MD5碰撞的解释:

通常情况下,不同的输入得到不同的散列值。然而存在一种情况是不同的输入却得到了相同的散列值,称之为“碰撞”。尽管优秀的散列算法应当极力避免碰撞的出现,但理论上是不能完全避免的,所以MD5和SHA-1等散列算法中存在碰撞。山东大学的王小云教授提出了一种比较快的找到碰撞的方法,而不是研究出了任何MD5值都可以被逆的逆向算法,MD5算法仍然是不可逆的。

人们还一直在争论着MD5到底算不算加密算法呢?加密和编码本质的联系是什么?散列算法能不能称为“广义的加密算法”呢?

我想这个话题还将无休止的讨论下去...



在线站长工具

在线参考手册

@百度,什么时候过来谈收购?