Maison > développement back-end > tutoriel php > Puis-je migrer de Mcrypt vers le chiffrement OpenSSL tout en conservant la compatibilité de décryptage ?

Puis-je migrer de Mcrypt vers le chiffrement OpenSSL tout en conservant la compatibilité de décryptage ?

Mary-Kate Olsen
Libérer: 2024-12-30 19:12:13
original
690 Les gens l'ont consulté

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

Mise à niveau de ma bibliothèque de chiffrement de Mcrypt vers OpenSSL

Question :

Est-il possible de mettre à niveau ma bibliothèque de chiffrement de Mcrypt vers OpenSSL et conserver la possibilité de déchiffrer les données chiffrées à l'aide Mcrypt ?

Informations contradictoires :

Il semble y avoir des informations contradictoires en ligne concernant la compatibilité entre ces deux bibliothèques.

  • Une source affirme que le décryptage des données cryptées par Mcrypt avec OpenSSL est impossible.
  • Une autre source suggère qu'il est possible d'utiliser padding.

Contexte supplémentaire :

J'essaie de convertir une classe de chiffrement qui utilise actuellement Mcrypt en une classe qui utilise OpenSSL. Cependant, je rencontre des difficultés pour déchiffrer les données chiffrées avec la version Mcrypt.

Code de travail pour le décryptage :

Le code révisé suivant pour la routine de décryptage dans la version OpenSSL a été confirmé pour fonctionner :

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;
}
Copier après la connexion

Test Résultats :

Le test de ce code révisé avec diverses données et clés n'a donné aucun échec.

Conclusion :

Il est possible de mettre à niveau le bibliothèque de chiffrement de Mcrypt vers OpenSSL et décryptez avec succès les données chiffrées avec la bibliothèque précédente, à condition que vous utilisiez la routine de décryptage mise à jour.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal