中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP7實現OpenSSL DES-EDE-CBC加密和解密

發布時間:2020-05-22 18:16:33 來源:億速云 閱讀:505 作者:鴿子 欄目:編程語言

1. 條件約束

之前PHP5上常使用的mcrypt庫在PHP7.1+上已經被移除,故我們采用openssl對數據進行加解密。

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

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

2. 代碼分享

<?php
class 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加解密的詳細內容,更多請關注億速云其它相關文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永春县| 阆中市| 绥滨县| 张掖市| 保亭| 鸡泽县| 富宁县| 金湖县| 班玛县| 荥阳市| 绥棱县| 科技| 丹江口市| 德兴市| 达尔| 株洲市| 冷水江市| 温泉县| 武邑县| 高州市| 达拉特旗| 内黄县| 灌云县| 井冈山市| 北流市| 荆州市| 江北区| 黄石市| 萝北县| 固始县| 江门市| 焦作市| 喀喇| 临海市| 尼玛县| 石城县| 偏关县| 张家口市| 遂宁市| 镇宁| 云霄县|