一個(gè)簡(jiǎn)潔的PHP可逆加密函數(shù)(分享)
很多時(shí)候我們需要對(duì)數(shù)據(jù)進(jìn)行加密解密,比如有些數(shù)據(jù)需要保存到cookie中,但又不能被用戶輕易得到這些數(shù)據(jù),這時(shí)我們就需要加密這些數(shù)據(jù)保存到cookie中,等我們需要使用它們的時(shí)候再解密。
加密的過(guò)程如下:
// 加密數(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)));
}
使用的時(shí)候再解密:
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));
}
這里記錄下這個(gè)可逆的加密函數(shù)的使用。
- PHP對(duì)稱加密函數(shù)實(shí)現(xiàn)數(shù)據(jù)的加密解密
- PHP的幾個(gè)常用加密函數(shù)
- php常用hash加密函數(shù)
- PHP加密函數(shù) Javascript/Js 解密函數(shù)
- PHP寫的加密函數(shù),支持私人密鑰(詳細(xì)介紹)
- php 的加密函數(shù) md5,crypt,base64_encode 等使用介紹
- discuz程序的PHP加密函數(shù)原理分析
- PHP 字符串加密函數(shù)(在指定時(shí)間內(nèi)加密還原字符串,超時(shí)無(wú)法還原)
- PHP內(nèi)置加密函數(shù)詳解
相關(guān)文章
php中通過(guò)虛代理實(shí)現(xiàn)延遲加載的實(shí)現(xiàn)代碼
基本原理是通過(guò)一個(gè)虛代理(Virtual Proxy)做占位符,一旦訪問(wèn)代理對(duì)象的某成員(方法或?qū)傩裕?,加載就被觸發(fā)。2011-06-06PHP4和PHP5版本下解析XML文檔的操作方法實(shí)例分析
這篇文章主要介紹了PHP4和PHP5版本下解析XML文檔的操作方法,結(jié)合實(shí)例形式分析了php4與php5環(huán)境下解析xml文檔的相關(guān)實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下2017-05-05php簡(jiǎn)單構(gòu)造json多維數(shù)組的方法示例
這篇文章主要介紹了php簡(jiǎn)單構(gòu)造json多維數(shù)組的方法,結(jié)合實(shí)例形式分析了php數(shù)據(jù)庫(kù)查詢結(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庫(kù)三種常見(jiàn)方法抓取網(wǎng)絡(luò)數(shù)據(jù),并給出了代碼實(shí)例,需要的朋友可以參考下2015-06-06深入理解PHP幾個(gè)算法:PHP冒泡、PHP二分法、PHP求素?cái)?shù)、PHP乘法表
本篇文章是對(duì)PHP冒泡、PHP二分法、PHP求素?cái)?shù)、PHP乘法表進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06Linux下進(jìn)行MYSQL編程時(shí)插入中文亂碼的解決方案
Linux下進(jìn)行MYSQL編程時(shí)插入中文亂碼的解決方案...2007-03-03PHP實(shí)現(xiàn)雙鏈表刪除與插入節(jié)點(diǎn)的方法示例
這篇文章主要介紹了PHP實(shí)現(xiàn)雙鏈表刪除與插入節(jié)點(diǎn)的方法,結(jié)合實(shí)例形式分析了PHP雙鏈表的定義與節(jié)點(diǎn)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-11-11PHP時(shí)間日期增減操作示例【date strtotime實(shí)現(xiàn)加一天、加一月等操作】
這篇文章主要介紹了PHP時(shí)間日期增減操作,結(jié)合實(shí)例形式分析了php使用date、strtotime等函數(shù)實(shí)現(xiàn)加一天、加一月等運(yùn)算相關(guān)實(shí)現(xiàn)技巧與問(wèn)題解決方法,需要的朋友可以參考下2018-12-12