PHP中的MD5加密

http://tech.ddvip.com   2007年08月26日    社区交流

内容摘要:PHP提供了crypt()函数完成加密功能,本文介绍PHP中的MD5加密

   在缺省状态下使用的 crypt()并不是最安全的,所以如果需要较高的安全性能,就需要其他更好的算法,比如md5(),这一函数使用MD5散列算法。   

   如何通过MD5方式进行加密?   

   PHP中通过MD5方式加密的函数有md5(),它的一个作用是混编。   

   一个混编函数可以将一个可变长度的信息变换为具有固定长度被混编过的输出,也被称作"信息文摘",这是十分有用的,因为 一个固定长度的字符串可以用来检查文件的完整性和验证数字签名与用户身份。PHP内置的md5()混编函数将把一个可变长度的信息转换为128位(32个字符)的信息文摘。混编的一个有趣的特点是:不能通过分析混编后的信息得到原来的明码,因为混编后的结果 与原来的明码内容没有依赖关系。即便只改变一个字符串中的一个字符,也将使得MD5混编算法计算出二个截然不同的结果。我们首先来看下表的内容及其相应的结果:  

   使用md5()混编字符串   

   <php
   $input = "Hello,PHP world!";
   $output = md5($input);
   print "输出: $output ";
   ?>

   结果:   

   输出: 7996b5e0804042fd531907a4900f190e   

   注意,结果的长度为32个字符。我们把$input的值稍微改变一下:   

   使用md5()对一个稍微变化的字符串进行混编   

   <?php
   $input = "Hello,PHP World!";
   $output = md5($input);
   print "输出: $output ";
   ?>

   结果:   

   hash2: f0456d48ed06a5c35b1e42561fa7a016

   可以发现,尽管二个结果的长度都是32个字符,但明文中一点微小的变化使得结果发生了很大的变化,我们可以利用这个特点来检查数据中微小变化。

责编:豆豆技术应用

正在加载评论...