Mise à niveau de ma bibliothèque de chiffrement de McRypt à OpenSSL
Puis-je mettre à niveau ma bibliothèque de cryptage à partir de McRypt à OpenSSL? Dans OpenSSL, est-il possible de décrypter les données cryptées avec McRypt? Deux articles différents fournissent des informations contradictoires.
Question: est-il possible de mettre à niveau ma bibliothèque de chiffrement de McRyppt à OpenSSL? Si oui, comment?
Réponse: Oui, il est possible de mettre à niveau votre bibliothèque de chiffrement de McRypt à OpenSSL. est possible de décrypter les données cryptées avec McRypt en utilisant OpenSSL.
Voici un exemple de code de la façon dont vous pouvez décrypter les données cryptées avec McRypt en utilisant OpenSSL:
la fonction publique décrypte ($ data, $) { $ 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)) { retourne false; } $ dec = openssl_decrypt ($ enc, $ this-> cipher, $ cipherkey, openssl_raw_data, $ iv); retour $ déc. }
Notes supplémentaires:La fonction OpenSSL_DECRYPT () nécessite que le paramètre IV soit la même longueur que la taille du bloc de la même longueur que la taille du bloc de la taille du bloc de la taille du bloc de la taille du clip OpenSSL_DECRYPT () Fonction en mode CBC.
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:
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3