";
// Encrypt
= mcrypt_encrypt(, key,
, MCRYPT_MODE_CBC, );
// Convert to hexadecimal and output to browser
print "Encrypted string: ".bin2hex()."
";
= mcrypt_decrypt(, key,
, MCRYPT_MODE_CBC, );
print "Decrypted string: ";
?>
執行上面的腳本將會產生下面的輸出:
Original string: Applied Cryptography, by Bruce Schneier, is a wonderful cryptography reference.
Encrypted string: 02a7c58b1ebd22a9523468694b091e60411cc4dea8652bb8072 34fa06bbfb20e71ecf525f29df58e28f3d9bf541f7ebcecf62b c89fde4d8e7ba1e6cc9ea24850478c11742f5cfa1d23fe22fe8 bfbab5e
Decrypted string: Applied Cryptography, by Bruce Schneier, is a wonderful cryptography reference.
上面的代碼中二個最典型的函數是mcrypt_encrypt()和mcrypt_decrypt(),它們的用途是顯而易見的。我使用了“電報密碼本”模式,Mcrypt提供了幾種加密方式,由于每種加密方式都有可以影響密碼安全的特定字符,因此每種模式都需要了解。對于沒有接觸過密碼系統的讀者來說,可能對mcrypt_create_iv()函數更有興趣,盡管對這一函數進行徹底的解釋已經超出了本篇文章的范圍,但我仍然會提到它創建的初始化向量(hence, iv),這一向量可以使每條信息彼此獨立。盡管不是所有的模式都需要這一初始化變量,但如果在要求的模式中沒有提供這一變量,PHP就會給出警告信息。
Mhash擴展庫
http://sourceforge.net/projects/mhash/
0.8.3版的Mhash擴展庫支持12種混編算法,仔細檢查Mhash v.0.8.3的頭文件mhash.h可以知道,它支持下面的混編算法:
CRC32 HAVAL160 MD5
CRC32B HAVAL192 RIPEMD160
GOST HAVAL224 SHA1
HAVAL128 HAVAL256 TIGER
安裝
象Mcrypt一樣,Mhash也沒有包括在PHP軟件包中,對于非Windows用戶而言,下面是安裝過程:
下載Mhash擴展庫
gunzipmhash-x.x.x.tar.gz
tar -xvfmhash-x.x.x.tar
./configure
make
make install
cd
新聞熱點
疑難解答