Upgrade meiner Verschlüsselungsbibliothek von Mcrypt auf OpenSSL
Frage:
Ist das möglich? Aktualisieren Sie meine Verschlüsselungsbibliothek von Mcrypt auf OpenSSL und behalten Sie die Möglichkeit, mit verschlüsselte Daten zu entschlüsseln Mcrypt?
Widersprüchliche Informationen:
Es scheint online widersprüchliche Informationen bezüglich der Kompatibilität zwischen diesen beiden Bibliotheken zu geben.
Zusätzlicher Kontext:
Ich versuche, eine Verschlüsselungsklasse, die derzeit Mcrypt verwendet, in eine zu konvertieren, die OpenSSL verwendet. Allerdings stoße ich beim Entschlüsseln von mit der Mcrypt-Version verschlüsselten Daten auf Schwierigkeiten.
Arbeitscode für die Entschlüsselung:
Der folgende überarbeitete Code für die Entschlüsselungsroutine in der OpenSSL-Version Es wurde bestätigt, dass es funktioniert:
public function decrypt($data, $key) { $salt = substr($data, 0, 128); $enc = substr($data, 128, -64); $mac = substr($data, -64); list ($cipherKey, $macKey, $iv) = $this->getKeys($salt, $key); if ($mac !== hash_hmac('sha512', $enc, $macKey, true)) { return false; } $dec = openssl_decrypt($enc, $this->cipher, $cipherKey, OPENSSL_RAW_DATA, $iv); return $dec; }
Test Ergebnisse:
Das Testen dieses überarbeiteten Codes mit verschiedenen Daten und Schlüsseln ergab keine Fehler.
Fazit:
Es ist möglich, den zu aktualisieren Verschlüsselungsbibliothek von Mcrypt zu OpenSSL und entschlüsseln Sie erfolgreich Daten, die mit der vorherigen Bibliothek verschlüsselt wurden, vorausgesetzt, Sie verwenden die aktualisierte Entschlüsselungsroutine.
Das obige ist der detaillierte Inhalt vonKann ich von der Mcrypt- zur OpenSSL-Verschlüsselung migrieren und gleichzeitig die Entschlüsselungskompatibilität beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!