Heim > Backend-Entwicklung > PHP-Tutorial > Kann ich von der Mcrypt- zur OpenSSL-Verschlüsselung migrieren und gleichzeitig die Entschlüsselungskompatibilität beibehalten?

Kann ich von der Mcrypt- zur OpenSSL-Verschlüsselung migrieren und gleichzeitig die Entschlüsselungskompatibilität beibehalten?

Mary-Kate Olsen
Freigeben: 2024-12-30 19:12:13
Original
690 Leute haben es durchsucht

Can I Migrate from Mcrypt to OpenSSL Encryption While Maintaining Decryption Compatibility?

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.

  • Eine Quelle behauptet dass das Entschlüsseln von Mcrypt-verschlüsselten Daten mit OpenSSL unmöglich ist.
  • Eine andere Quelle weist darauf hin, dass dies möglich ist padding.

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

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!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage