AES CBC
May 23, 2016 pm 04:36 PM
aes
php代码
class AES_CBC_NoPadding { private $iv; private $key; private $blocksize; public function __construct($key, $iv) { $this->blocksize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC); $this->key = substr(md5($key), 0, $this->blocksize); $this->iv = substr(md5($iv), 0, $this->blocksize); } public function encrypt($text) { $pad = $this->blocksize - strlen($text)%$this->blocksize; $text = str_pad($text, strlen($text) + $pad, "\0"); return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $this->key, $text, MCRYPT_MODE_CBC, $this->iv)); } public function decrypt($text) { $text = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $this->key, base64_decode($text), MCRYPT_MODE_CBC, $this->iv); $len = strlen($text); for($len--; $len >= 0; $len--) { if($text[$len] !== "\0") { $len++; break; } } return substr($text, 0, $len); } } class AES_CBC_PKCS7Padding { private $iv; private $key; private $blocksize; public function __construct($key, $iv) { $this->blocksize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC); $this->key = substr(md5($key), 0, $this->blocksize); $this->iv = substr(md5($iv), 0, $this->blocksize); } public function encrypt($text) { $pad = $this->blocksize - strlen($text)%$this->blocksize; $text = str_pad($text, strlen($text) + $pad, chr($pad)); return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $this->key, $text, MCRYPT_MODE_CBC, $this->iv)); } public function decrypt($text) { $text = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $this->key, base64_decode($text), MCRYPT_MODE_CBC, $this->iv); $pad = ord(substr($text, -1)); if($pad < 1 || $pad > 32) { $pad = 0; } return substr($text, 0, strlen($text) - $pad); } }
登入後複製
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)