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
Mary-Kate OlsenOriginal
2024-12-30 19:12:13710Durchsuche

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;
}

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!

Stellungnahme:
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