綜述:0.8.3版的Mhash擴充庫支援12種混編演算法,仔細檢查Mhash v.0.8.3的標頭檔mhash.h可以知道,它支援下面的混編演算法:
CRC32 HAVAL160 MD5
CRC32B HAVAL192 RIPEMD160
GOST HAVAL224 SHA1
HAVAL128 HAVAL256 TIGER
如何安裝Mhash擴充庫?
象Mcrypt一 樣,Mhash也沒有包括在PHP軟體包中,下面是安裝過程(非Windows):
首先,下載Mhash擴充庫(http://sourceforge.net/projects/mhash/ )
gunzipmhash-x.x.x.tar.gz
tar -xvfmhash-x.x.x.tar
./configure
make
make install
cd
./configure -with-mhash=[dir] [--other-configuration-directives]
make
make install
然後,象Mcrypt一樣,根據PHP在互連網伺服器軟體上的安裝方式,可能需要對Mhash進行其他的配置。
對於Windows使用者而言, http://www.php4win.de中有一個很好的包括Mhash擴充庫在內的PHP軟體包。只要下載並進行解壓縮,然後根據其中的readme.first文檔中的指令進行安裝即可。
如何使用Mhash?
對資訊進行混編非常簡單,看一下下面的例子:
<?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);
print "The hashed message is ". bin2hex($hashed_message);
?>
執行這一段指令碼程式將得到下面的輸出結果:
The hashed message is 07a92a4db3a4177f19ec9034ae5400eb60d1a9fbb4ade461
在這裡使用bin2hex()函數的目的是方便我們理解$hashed_message 的輸出,這是因為混編的結果是二進位格式,為了能夠將它轉化為易於理解的格式,必須將它轉換為十六進位格式。
需要注意的是,混編是單向功能,其結果不依賴輸入。
Mhash還有其他一些有用的函數。例如,我們需要輸出一個Mhash支援的演算法的名字,由於 Mhash支援的所有演算法的名字都以MHASH_開頭,因此,可以通過執行如下的程式碼完成這一任務:
<?php
$hash_alg = MHASH_TIGER;
print "This data has been hashed with the".mhash_get_hash_name($hashed_message)."hashing algorithm.";
?>>
得到的輸出是:
This data has been hashed with the TIGER hashing algorithm.
關於PHP和加密需要注意什麼問題?
PHP加密需要注意的一個重要問題是在伺服器和用戶端之間傳輸的資料在傳輸過程中是不安全的!PHP是一種伺服器端技術,不能阻止資料在傳輸過程中泄密。因此,如果想實現一個完整的安全應用,建議選用 Apache-SSL或其他的安全伺服器。
http://www.bkjia.com/PHPjc/531847.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/531847.htmlTechArticle綜述:0.8.3版的Mhash擴充庫支援12種混編演算法,仔細檢查Mhash v.0.8.3的標頭檔mhash.h可以知道,它支援下面的混編演算法: CRC32 HAV...