php加密解密實(shí)用類分享
用戶注冊的密碼一般不會明文保存,總得加個(gè)密先。最簡單的當(dāng)然是在數(shù)據(jù)庫sql語句中調(diào)用md5函數(shù)加密用戶密碼。這里介紹一個(gè)加解密類。如果你想在用戶忘記密碼時(shí)為他或她找回原來的密碼,那么這個(gè)類是個(gè)好用的工具。當(dāng)然,這個(gè)加解密類也可用于其他用途。
<?php
class crypt {
private $skey;
public function __construct($key) {
$this->skey = hash("md5", $key, true); //32位skey
}
public function safe_b64encode($string) {
$data = base64_encode($string);
$data = str_replace(array('+', '/', '='), array('-', '_', ''), $data);
return $data;
}
public function safe_b64decode($string) {
$data = str_replace(array('-', '_'), array('+', '/'), $string);
$mod4 = strlen($data) % 4;
if ($mod4) {
$data .= substr('====', $mod4);
}
return base64_decode($data);
}
public function encode($value) {
if (!$value) {
return false;
}
$text = $value;
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $this->skey, $text, MCRYPT_MODE_ECB, $iv);
return trim($this->safe_b64encode($crypttext));
}
public function decode($value) {
if (!$value) {
return false;
}
$crypttext = $this->safe_b64decode($value);
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $this->skey, $crypttext, MCRYPT_MODE_ECB, $iv);
return trim($decrypttext);
}
}
相關(guān)文章
Laravel獲取所有的數(shù)據(jù)庫表及結(jié)構(gòu)的方法
今天小編就為大家分享一篇Laravel獲取所有的數(shù)據(jù)庫表及結(jié)構(gòu)的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10CentOS 7.2 下編譯安裝PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法詳解(mini版
這篇文章主要介紹了CentOS 7.2 mini版本下編譯安裝PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09Codeigniter上傳圖片出現(xiàn)“You did not select a file to upload”錯(cuò)誤解決辦法
這篇文章主要介紹了Codeigniter上傳圖片出現(xiàn)“You did not select a file to upload”的解決辦法,需要的朋友可以參考下2014-06-06Laravel Validator 實(shí)現(xiàn)兩個(gè)或多個(gè)字段聯(lián)合索引唯一
這篇文章主要介紹了Laravel Validator 兩個(gè)或多個(gè)字段聯(lián)合索引唯一,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05PHP將英文數(shù)字轉(zhuǎn)換為阿拉伯?dāng)?shù)字實(shí)例講解
在本篇文章里小編給大家分享了關(guān)于PHP將英文數(shù)字轉(zhuǎn)換為阿拉伯?dāng)?shù)字實(shí)例內(nèi)容,有興趣的朋友們可以參考學(xué)習(xí)下。2019-01-01laravel 判斷查詢數(shù)據(jù)庫返回值的例子
今天小編就為大家分享一篇laravel 判斷查詢數(shù)據(jù)庫返回值的例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10