標籤:類型 執行 有一個 isis book his 定義 sha 錯誤
http://blog.csdn.net/why_2012_gogo/article/details/51194673
PHP安全處理之Mcrypt使用總結:
我們知道在編寫代碼程式時,除了要保證代碼的高效能,還有一個非常重要的,就是資料的安全。對於php而言,它本身提供了幾種加密資料的辦法,不過還是有限,對於滿足特殊資料加解密方面有些欠缺,所以這裡推薦使用的第三方拓展mcrypt庫,它提供了類型、演算法及模式繁多的加解密功能,那麼下面來介紹下它的使用。
· 安裝及配置
· 預定義常量
· 例子的驗證
一、安裝及配置
1、安裝
因為Mcrypt是作為拓展被PHP所使用,所以可參考PHP拓展文章:
http://blog.csdn.net/why_2012_gogo/article/details/51120645
2、配置
對於mcrypt配置比較簡單,我們只需要在php.ini中添加下面即可:
extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/mcrypt.so
其實,也就是添加拓展載入而已。
二、預定義常量
Mcrypt支援的資料加密模式:
MCRYPT_MODE_ECB (electronic codebook) :適用於隨機資料, 比如可以用這種模式來加密其他密鑰。 由於要加密的資料很短,並且是隨機的,所以這種模式的缺點反而起到了積極的作用。
MCRYPT_MODE_CBC (cipher block chaining) :特別適用於對檔案進行加密。 相比 ECB, 它的安全性有明顯提升。
MCRYPT_MODE_CFB (cipher feedback) 對於每個單獨的位元組都進行加密, 所以非常適用於針對位元組流的加密。
MCRYPT_MODE_OFB (output feedback, in 8bit): 和 CFB 類似。它可以用在無法容忍加密錯誤傳播的應用中。 因為它是按照 8 個位元位進行加密的, 所以安全係數較低,不建議使用。
libmcrypt-2.4.x 或更高版本:
MCRYPT_MODE_NOFB (output feedback, in nbit): 和 OFB 類似,但是更加安全, 因為它可以按照演算法指定的分組大小來對資料進行加密。
MCRYPT_MODE_STREAM 是一種擴充模式,它包含了諸如 "WAKE" 或 "RC4" 的流密碼編譯演算法。
三、例子的驗證
下面舉例子來說明其使用:
<?php
// 256位元的密鑰
$key = hash(‘sha256‘, ‘thisis a secret key‘, true);
// 開啟演算法和模式
$td = mcrypt_module_open(‘rijndael-256‘,‘‘,‘cbc‘,‘‘);
// 建立初始向量
$iv =mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_DEV_URANDOM);
echo ‘加密之前:This is a testting for mcryptuse!</br>‘;
// 初始化加密
mcrypt_generic_init($td,$key, $iv);
// 加密字串
$encrypt_data =mcrypt_generic($td, ‘This is a testting for mcrypt use!‘);
// 輸出加密後的內容
echo ‘加密之後:‘.$encrypt_data.‘</br>‘;
// 結束加密,執行清理工作
mcrypt_generic_deinit($td);
// 初始化解密
mcrypt_generic_init($td,$key, $iv);
// 解密密文
$dencrypt_data =mdecrypt_generic($td, $encrypt_data);
// 輸出解密後的內容
echo ‘解密之後:‘.$dencrypt_data.‘</br>‘;
// 結束解密,執行清理工作
mcrypt_generic_deinit($td);
// 關閉加密模組
mcrypt_module_close($td);
?>
結果:
好了,到這裡我們已經介紹完了mcrypt的使用。
PHP安全處理之Mcrypt使用總結