首页 > 8 其它知识 > 简单认识MD5和SHA-1

简单认识MD5和SHA-1

2010年5月18日 AEROFISH 1,619 views 发表评论 阅读评论

MD5和SHA-1是目前最常用的两种不可逆加密算法。可以理解为不存在反函数的加密函数。

大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为公安机关鉴别罪犯身份最值得信赖的方法。与之类似,MD5或SHA就可以为任何文件或者字符串(不管其大小、格式、数量)产生一个同样独一无二的“数字指纹”,如果任何人对文件做了任何改动,其对应的MD5值或SHA值就会发生变化。因此两种被广泛应用于电子签名领域。不过这在2005年后已经被中国研究者王小云的团队所破解,王小云的研究成果很轻松的找到了2个不同的文件可以产生相同的MD5值或SHA值,这表明从理论上讲电子签名可以被伪造,必须及时添加限制条件,或者重新选用更为安全的密码标准,以保证电子商务的安全。但是不用担心,虽然有点瑕疵,但它们的安全性还是能被人们所认可的。

我们常常在某些软件下载站点的某软件信息中看到其MD5值,它的作用就在于我们可以在下载该软件后,对下载回来的文件用专门的软件(如Windows MD5 Check等)做一次MD5校验,以确保我们获得的文件与该站点提供的文件为同一文件。利用MD5算法来进行文件校验的方案被大量应用到软件下载站、论坛数据库、系统文件安全等方面。

MD5和SHA-1除了应用于电子签名和文件校验外,还常用于各类密码的加密手段。不过如果只是简单的使用MD5或SHA-1一种加密手段,也是极为不安全的,因为还是可以用穷举法来破解。最好的方法是两种或者多种加密手段混合使用。

以下是利用PHP5的默认函数来计算字符串的MD5和SHA-1值:

<?php
$str = 'Hello';
echo md5($str);
echo sha1($str);
?>

md5产生一个32字符的十六进制数,sha1产生一个40字符的十六进制数。


本文对我无帮助,减1分本文对我有帮助,加1分 (本文对您有帮助吗?)
Loading ... Loading ...

分类: 8 其它知识 标签: ,