PHP7 OpenSSL DES-EDE-CBC 暗号化と復号化

藏色散人
リリース: 2023-02-17 13:44:01
転載
3229 人が閲覧しました

1. 条件付き制約

PHP5 で一般的に使用されていた mcrypt ライブラリは PHP7.1 では削除されたため、データの暗号化と復号化には openssl を使用します。

暗号化方式はDES-EDE-CBC方式を採用しています。

キーの充填方法は次のとおりです。24 ビット キーを使用し、最初にキーに対して MD5 検証を実行して 16 ビット文字列を取得し、次にキーの 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 = &#39;DES-EDE-CBC&#39;;
$msg = &#39;HelloWorld&#39;;
$key = &#39;12345678&#39;;
$iv  = "\x00\x00\x00\x00\x00\x00\x00\x00";
$des = new DesEdeCbc($cipher, $key, $iv);
// 加密
$msg = $des->encrypt($msg);
echo &#39;加密后: &#39; . $msg . PHP_EOL;
// 解密
$src = $des->decrypt($msg);
echo &#39;解密后: &#39; . $src . PHP_EOL;
ログイン後にコピー

3. ちょっとした説明

暗号化方法とキーの入力は、次のように調整できます。現実の状況に応じた方法、およびさまざまなニーズを満たすベクトルを提供します。

PHP7 に関するその他の関連記事については、「PHP7」チュートリアル

をご覧ください。

以上がPHP7 OpenSSL DES-EDE-CBC 暗号化と復号化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!