亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

崇义县| 西乌珠穆沁旗| 广水市| 海安县| 新安县| 石狮市| 阳山县| 股票| 澄江县| 思南县| 清涧县| 常宁市| 苏尼特左旗| 紫阳县| 清河县| 图木舒克市| 余江县| 陆川县| 平利县| 沧源| 观塘区| 东乌| 黄大仙区| 铜陵市| 富平县| 临夏县| 阳山县| 万安县| 灌云县| 台湾省| 聂拉木县| 平定县| 怀远县| 梁山县| 宝清县| 繁峙县| 洱源县| 文昌市| 新竹县| 南澳县| 纳雍县|