PHP中的Mcrypt函數庫應用

Mcrypt的4種塊密碼模式是:

·Electronic CodeBook(ECB,電子碼證書):該模式用來加密短小無序的數據,例如鍵;
·Cipher Block Chaining(CBC,密碼塊鏈):該模式的安全級別要比ECB高;
·Cipher FeedBack(CFB,密碼反饋):該模式用於爲字節流按字節加密;
·Output FeedBack(OFB,輸出反饋):該模式與CFB模式想類似,但是它可以用於無法容忍錯誤繁殖問題的應用程序,該模式以8位方式運行,已被證明是不安全的


如果是最新版本的Mcrypt函數庫,那麼Mcrypt也可以用更加安全的塊模式以及以tream模式運行,包括:
·oOutput FeedBack(nOFB):該模式與OFB模式相類似,但是它的安全性更高,因爲它是以整個塊(n位)的方式運行的,而不是以單個位來運行的;
·Stream Mode(流模式):是附加模式,可以支持流算法,如WAKE和RC4。


這裏僅對CBC的語法做介紹:

string mcrypt_cbc(string cipher,string key,string data,int mode)

該函數有4個參數,第一個cipher表示對數據加密的算法,第二個key是爲算法提供的鍵(密鑰),第三個data是被加密的信息,最後一個mode詳細說明了數據是被加密還是被解密。

Mcrypt庫支持的算法有:
·DES和Triple-DES
·Blowfish
·TWOFISH
·SAFER-SK64
·3-WAY
·RC2
·GOST
·RC6
·RC4
·CAST
·IDEA
·AES

下載Mcrypt函數外部庫(版本: 2.5.7 )

http://club.phpe.net/index.php?s=&act=Attach&type=post&id=28237(我做的壓縮包,內含外部庫函數、安裝方法及自己寫的一個PHP函數)

或者到PHP官方網站提供的地址去下載:

http://ftp.emini.dk/pub/php/win32/mcrypt/

此版本支持的加密算法:

cast-128 gost rijndael-128 twofish arcfour cast-256 loki97 rijndael-192 saferplus wake blowfish-compat des rijndael-256 serpent xtea blowfish enigma rc2 tripledes

支持的加密模式:

cbc cfb ctr ecb ncfb nofb ofb stream

安裝方法

1.將libmcrypt.dll複製到system32目錄
2.去掉;extension=php_mcrypt.dll前面的分號

重新啓動Apache或IIS

我只用了CBC模式,其他的參考PHP官方網站

http://www.php.net/manual/zh/ref.mcrypt.php

Mcrypt函數:

<?php
/*****************************
 * Mcrypt
 * (C)Copyright fzjw
 * Email:[email protected]
 * 2004/08/22
 ****************************/

function Mcrypt($password){
  $password = trim($password);                    //去掉空格
  $key      = "wwcec.net webmaster fzj-w";    //自定義密鑰
  $password = mcrypt_cbc(MCRYPT_LOKI97,$password,$key,MCRYPT_ENCRYPT);
  $password = bin2hex($password);             //將二進制編碼轉換爲16進制
  return $password;
}

//使用方法

$password = Mcrypt($_POST['password'])

?>

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章