PHP安装Mhash扩展库

网络整理 - 08-10
    综述:0.8.3版的Mhash扩展库支持12种混编算法,仔细检查Mhash v.0.8.3的头文件mhash.h可以知道,它支持下面的混编算法:

牐牐牐燙RC32 HAVAL160 MD5 
牐牐牐燙RC32B HAVAL192 RIPEMD160 
牐牐牐燝OST HAVAL224 SHA1 
牐牐牐燞AVAL128 HAVAL256 TIGER  

牐犎绾伟沧癕hash扩展库? 

牐犗驧crypt一样,Mhash也没有包括在PHP软件包中,下面是安装过程(非Windows): 

牐犑紫龋下载Mhash扩展库()

牐牐牐爂unzipmhash-x.x.x.tar.gz 
牐牐牐爐ar -xvfmhash-x.x.x.tar 
牐牐牐./configure 
牐牐牐爉ake 
牐牐牐爉ake install 
牐牐牐燾d 
牐牐牐./configure -with-mhash=[dir] [--other-configuration-directives] 
牐牐牐爉ake 
牐牐牐爉ake install  

牐犎缓螅象Mcrypt一样,根据PHP在互联网服务器软件上的安装方式,可能需要对Mhash进行其他的配置。 

牐牰杂赪indows用户而言,中有一个很好的包括Mhash扩展库在内的PHP软件包。只要下载并进行解压缩,然后根据其中的readme.first文档中的指令进行安装即可。 

牐犎绾问褂肕hash? 

牐牰孕畔⒔行混编非常简单,看一下下面的例子: 

牐牐牐

<?php 
牐牐牐$hash_alg = MHASH_TIGER; 
牐牐牐$message = "These are the directions to the secret fort. Two steps left, three steps right, and cha chacha."; 
牐牐牐$hashed_message = mhash($hash_alg, $message); 
牐牐牐爌rint "The hashed message is ". bin2hex($hashed_message); 
牐牐牐?>

  

牐犞葱姓庖欢谓疟境绦蚪得到下面的输出结果: 

牐牐牐燭he hashed message is 07a92a4db3a4177f19ec9034ae5400eb60d1a9fbb4ade461 

牐犜谡饫锸褂胋in2hex()函数的目的是方便我们理解$hashed_message 的输出,这是因为混编的结果是二进制格式,为了能够将它转化为易于理解的格式,必须将它转换为十六进制格式。 

牐犘枰注意的是,混编是单向功能,其结果不依赖输入。 

牐燤hash还有其他一些有用的函数。例如,我们需要输出一个Mhash支持的算法的名字,由于 Mhash支持的所有算法的名字都以MHASH_开头,因此,可以通过执行如下的代码完成这一任务: 

牐牐牐

<?php 
牐牐牐$hash_alg = MHASH_TIGER; 
牐牐牐爌rint "This data has been hashed with the".mhash_get_hash_name($hashed_message)."hashing algorithm."; 
牐牐牐?>>

  

牐牭玫降氖涑鍪牵 

牐牐牐燭his data has been hashed with the TIGER hashing algorithm. 

牐牴赜赑HP和加密需要注意什么问题? 

牐燩HP加密需要注意的一个重要问题是在服务器和客户端之间传输的数据在传输过程中是不安全的!PHP是一种服务器端技术,不能阻止数据在传输过程中泄密。因此,如果想实现一个完整的安全应用,建议选用 Apache-SSL或其他的安全服务器。