首頁 > 後端開發 > PHP7 > 主體

詳解PHP7 OpenSSL DES-EDE-CBC加解密

coldplay.xixi
發布: 2023-02-17 21:30:02
轉載
1646 人瀏覽過

詳解PHP7 OpenSSL DES-EDE-CBC加解密

1、條件限制

#之前PHP5上常使用的mcrypt庫在PHP7.1 上已經被移除,故我們採用openssl對資料進行加解密。

加密方式採用DES-EDE-CBC方式。

金鑰填入方式為:採用24位元金鑰,先將key進行MD5校驗取值,得出16位元字串,再取key MD5校驗值前8位元追加到先前的取值後面。由此組裝出24位元的密鑰。

推薦(免費):PHP7

#2、程式碼分享##

<?phpclass DesEdeCbc {private $cipher, $key, $iv;/**
 * DesEdeCbc constructor.
 * @param $cipher
 * @param $key
 * @param $iv
 */public function __construct($cipher, $key, $iv) {$this->cipher = $cipher;$this->key= $this->getFormatKey($key);$this->iv = $iv;}/**
 * @func  加密
 * @param $msg
 * @return string
 */public function encrypt($msg) {$des = @openssl_encrypt($msg, $this->cipher, $this->key, OPENSSL_RAW_DATA, $this->iv);return base64_encode($des);}/**
 * @func  解密
 * @param $msg
 * @return string
 */public function decrypt($msg) {return @openssl_decrypt(base64_decode($msg), $this->cipher, $this->key, OPENSSL_RAW_DATA, $this->iv);}/**
 * @func  生成24位长度的key
 * @param $skey
 * @return bool|string
 */private function getFormatKey($skey) {$md5Value= md5($skey);$md5ValueLen = strlen($md5Value);$key = $md5Value . substr($md5Value, 0, $md5ValueLen / 2);return hex2bin($key);}}$cipher = 'DES-EDE-CBC';$msg = 'HelloWorld';$key = '12345678';$iv  = "\x00\x00\x00\x00\x00\x00\x00\x00";$des = new DesEdeCbc($cipher, $key, $iv);// 加密$msg = $des->encrypt($msg);echo '加密后: ' . $msg . PHP_EOL;// 解密$src = $des->decrypt($msg);echo '解密后: ' . $src . PHP_EOL;
登入後複製

3.一點說明

可以依照實際情況調整加密方式、key的填滿方式、及iv向量來滿足不同的需求。

以上是詳解PHP7 OpenSSL DES-EDE-CBC加解密的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!