„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Kann ich meine Verschlüsselung von McRypt nach OpenSSL migrieren und mit OpenSSL von McRypt-verkürzten Daten entschlüsseln?

Kann ich meine Verschlüsselung von McRypt nach OpenSSL migrieren und mit OpenSSL von McRypt-verkürzten Daten entschlüsseln?

Gepostet am 2025-06-15
Durchsuche:393

Can I Migrate My Encryption from Mcrypt to OpenSSL, and Decrypt Mcrypt-Encrypted Data Using OpenSSL?

Upgrade meiner Verschlüsselungsbibliothek von McRypt auf OpenSSL

Kann ich meine Verschlüsselungsbibliothek von McRypt nach OpenSsl aufrüsten? Ist es in OpenSSL möglich, Daten mit McRypt zu entschlüsseln? Zwei verschiedene Beiträge liefern widersprüchliche Informationen.

Frage: Ist es möglich, meine Verschlüsselungsbibliothek von McRypt auf OpenSSL zu aktualisieren? Wenn ja, wie?

Antwort: Ja, es ist möglich, Ihre Verschlüsselungsbibliothek von McRypt auf OpenSSL zu aktualisieren. Möglicherweise entschlüsselt Daten mit McRypt mit OpenSSL.

Hier ist ein Code -Beispiel dafür, wie Sie Daten entschlüsseln können, die mit McRypt mit OpenSSSL verschlüsselt werden können:

öffentliche Funktion entschlüsselt ($ Daten, $ key) {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{&)) entschlüsseln “können, entschlüsseln. $ salt = substr ($ data, 0, 128); $ ENC = substr ($ data, 128, -64); $ mac = substr ($ data, -64); Liste ($ cipherkey, $ mackey, $ iv) = $ this-> getKeys ($ salt, $ key); if ($ mac! false zurückgeben; } $ dec = opensensl_decrypt ($ Enc, $ this-> cipher, $ cipherkey, OpenSSL_RAW_DATA, $ IV); Return $ Dec; }

Zusätzliche Hinweise:

Die opensensl_decrypt () erfordert, dass der IV -Parameter die gleiche Länge wie die Blockgröße des Kipphers ist. OpenSSL_DECRYPT () -Funktion im CBC -Modus.
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:

    Der folgende Code kann verwendet werden, um die Decrypt () -Funktion zu testen:
  • $ keys = [[ "Das ist ein geheimer Schlüssel.", 'G906M70p (IHza5t & 5x7 (W0�31) u) �e79Ciyjq! IP2U (XT13Q6) TJ6GZ3D2WI & 0 ") 7CP5', Chr (6). Chr (200). Chr (16). "Mein Schlüssel". chr (3). Chr (4). Chr (192). CHR (254). 'Zyx0987 !!', "Und schließlich noch ein Schlüssel zum Testen hier: ',, ]; $ Data = [ 'A', "Dies ist ein Test", "Testen Sie jetzt etwas länger mit 1234567890." '$ length = mcrypt_get_block_size (mcrypt_blowfish, mcrypt_mode_cbc); $ last = ord ($ data [strlen ($ data) - 1]); ',, 'Lorem Ipsum Dolor Sit Amet, Consectetur Adipiscing Elit. Donec Sit Amet Pharetra Urna. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere kubilien curae; Ut Fringilla, Quam Sed Eleifend Eleifend, Justo Turpis Consectetur Tellus, Quis Tristique Eros Erat bei Nibh. Nunc dictum nque vel diam monirestie fermentum. Pellentesque Dignissim DUI Quis Tortor Eleifend, Ut Maximus Elit Egestas. Donec Posuere Odio et Auctor Porta. Quisque Placerat Cutimentum Maximus. Curabitur Luctus Dolor Eget Sem Luctus, in Dignissim Tortor Venenatis. Mauris eGet Nulla nisl. ', ]; $ failures = 0; foreach ($ data as $ datum) { foreach ($ keys als $ key) { $ ENC = NEW ENDPTION (McRypt_blowfish, McRypt_mode_CBC); $ Encrypted = $ Enc-> Encrypt ($ datum, $ key); $ dec = new EncryptionOpenSSL ('BF-CBC'); $ decrypted = $ dec-> entschlüsselt ($ verschlüsselt, $ key); if (strcmp ($ datum, $ entschlüsselt)! == 0) { echo "Verschlüsselung mit Schlüssel" $ key "von" $ datum "fehlgeschlagen." $ entschlüsselt "! = '$ datum'

    \ n \ n"; $ Misserfolge; } } } if ($ failures) { echo "$ failures tests fehlgeschlagen.
    \ n"; } anders { echo "alles okay
    \ n"; }
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3