Heim > Backend-Entwicklung > PHP7 > Hauptteil

PHP7 OpenSSL DES-EDE-CBC-Verschlüsselung und Entschlüsselung

藏色散人
Freigeben: 2023-02-17 13:44:01
nach vorne
3417 Leute haben es durchsucht

1. Bedingte Einschränkungen

Die unter PHP5 häufig verwendete mcrypt-Bibliothek wurde unter PHP7.1+ entfernt, daher verwenden wir OpenSSL zum Ver- und Entschlüsseln von Daten.

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

Die Schlüsselfüllmethode ist: Führen Sie mit einem 24-Bit-Schlüssel zunächst eine MD5-Verifizierung des Schlüssels durch, um eine 16-Bit-Zeichenfolge zu erhalten, und hängen Sie dann die ersten 8 Ziffern des MD5-Verifizierungswerts des Schlüssels an auf den vorherigen Wert zurück. Daraus wird ein 24-Bit-Schlüssel zusammengesetzt.

2. Code-Sharing

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

Eine kleine Erklärung

Sie können die Verschlüsselungsmethode und die Schlüsselfüllung entsprechend anpassen Methoden zur tatsächlichen Situation und IV-Vektoren, um unterschiedliche Anforderungen zu erfüllen.

Weitere verwandte PHP7-Artikel finden Sie unter: „PHP7“ Tutorial

Das obige ist der detaillierte Inhalt vonPHP7 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