一個簡潔的PHP可逆加密函數(shù)(分享)
很多時候我們需要對數(shù)據(jù)進行加密解密,比如有些數(shù)據(jù)需要保存到cookie中,但又不能被用戶輕易得到這些數(shù)據(jù),這時我們就需要加密這些數(shù)據(jù)保存到cookie中,等我們需要使用它們的時候再解密。
加密的過程如下:
// 加密數(shù)據(jù)并寫到cookie里
$cookie_data = $this -> encrypt("nowamagic", $data);
$cookie = array(
'name' => '$data',
'value' => $cookie_data,
'expire' => $user_expire,
'domain' => '',
'path' => '/',
'prefix' => ''
);
$this->input->set_cookie($cookie);
// 加密
public function encrypt($key, $plain_text) {
$plain_text = trim($plain_text);
$iv = substr(md5($key), 0,mcrypt_get_iv_size (MCRYPT_CAST_256,MCRYPT_MODE_CFB));
$c_t = mcrypt_cfb (MCRYPT_CAST_256, $key, $plain_text, MCRYPT_ENCRYPT, $iv);
return trim(chop(base64_encode($c_t)));
}
使用的時候再解密:
if( isset($_COOKIE['data']) )
{
//用cookie給session賦值
$_SESSION['data'] = decrypt("nowamagic", $_COOKIE['data']);
}
function decrypt($key, $c_t) {
$c_t = trim(chop(base64_decode($c_t)));
$iv = substr(md5($key), 0,mcrypt_get_iv_size (MCRYPT_CAST_256,MCRYPT_MODE_CFB));
$p_t = mcrypt_cfb (MCRYPT_CAST_256, $key, $c_t, MCRYPT_DECRYPT, $iv);
return trim(chop($p_t));
}
這里記錄下這個可逆的加密函數(shù)的使用。
相關(guān)文章
php中通過虛代理實現(xiàn)延遲加載的實現(xiàn)代碼
基本原理是通過一個虛代理(Virtual Proxy)做占位符,一旦訪問代理對象的某成員(方法或?qū)傩裕?,加載就被觸發(fā)。2011-06-06php簡單構(gòu)造json多維數(shù)組的方法示例
這篇文章主要介紹了php簡單構(gòu)造json多維數(shù)組的方法,結(jié)合實例形式分析了php數(shù)據(jù)庫查詢結(jié)果的json格式轉(zhuǎn)換操作技巧,需要的朋友可以參考下2017-06-06PHP中4種常用的抓取網(wǎng)絡(luò)數(shù)據(jù)方法
這篇文章主要介紹了PHP中4種常用的抓取網(wǎng)絡(luò)數(shù)據(jù)方法,本文講解使用file_get_contents函數(shù)、fopen函數(shù)、curl庫三種常見方法抓取網(wǎng)絡(luò)數(shù)據(jù),并給出了代碼實例,需要的朋友可以參考下2015-06-06深入理解PHP幾個算法:PHP冒泡、PHP二分法、PHP求素數(shù)、PHP乘法表
本篇文章是對PHP冒泡、PHP二分法、PHP求素數(shù)、PHP乘法表進行了詳細的分析介紹,需要的朋友參考下2013-06-06PHP實現(xiàn)雙鏈表刪除與插入節(jié)點的方法示例
這篇文章主要介紹了PHP實現(xiàn)雙鏈表刪除與插入節(jié)點的方法,結(jié)合實例形式分析了PHP雙鏈表的定義與節(jié)點操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2017-11-11PHP時間日期增減操作示例【date strtotime實現(xiàn)加一天、加一月等操作】
這篇文章主要介紹了PHP時間日期增減操作,結(jié)合實例形式分析了php使用date、strtotime等函數(shù)實現(xiàn)加一天、加一月等運算相關(guān)實現(xiàn)技巧與問題解決方法,需要的朋友可以參考下2018-12-12