Heim > Backend-Entwicklung > PHP7 > Detaillierte Erläuterung der PHP7 OpenSSL DES-EDE-CBC-Verschlüsselung und -Entschlüsselung

Detaillierte Erläuterung der PHP7 OpenSSL DES-EDE-CBC-Verschlüsselung und -Entschlüsselung

coldplay.xixi
Freigeben: 2023-02-17 21:30:02
nach vorne
1760 Leute haben es durchsucht

Detaillierte Erläuterung der PHP7 OpenSSL DES-EDE-CBC-Verschlüsselung und -Entschlüsselung

1. Bedingte Einschränkungen

Die unter PHP5 häufig verwendete mcrypt-Bibliothek wurde unter PHP7.1+ entfernt, daher verwenden wir openSL, um Daten zu verschlüsseln und zu entschlüsseln.

Die Verschlüsselungsmethode übernimmt DES-EDE-CBC.

Die Methode zum Ausfüllen des Schlüssels ist: Führen Sie mit einem 24-Bit-Schlüssel zunächst eine MD5-Überprüfung des Schlüssels durch, um eine 16-Bit-Zeichenfolge zu erhalten. Nehmen Sie dann die ersten 8 Ziffern des MD5-Überprüfungswerts des Schlüssels und hängen Sie ihn an den vorherigen Wert an . Daraus wird ein 24-Bit-Schlüssel zusammengesetzt.

Empfohlen (kostenlos): PHP7

2. Code-Sharing

<?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;
Nach dem Login kopieren

3. Eine kleine Erklärung

Sie können die Verschlüsselungsmethode, die Schlüsselfüllmethode und den iv-Vektor entsprechend anpassen Situation, um unterschiedliche Bedürfnisse zu erfüllen.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der PHP7 OpenSSL DES-EDE-CBC-Verschlüsselung und -Entschlüsselung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage