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