Position actuelle: Accueil> Derniers articles> Remplacez McRypt dans PHP 7.1 par OpenSSL: tutoriel détaillé et code d'exemple

Remplacez McRypt dans PHP 7.1 par OpenSSL: tutoriel détaillé et code d'exemple

gitbox 2025-06-18

1. Introduction

Dans PHP 7.1, la bibliothèque de fonctions McRypt a été déclarée obsolète, il est donc recommandé que les développeurs utilisent des extensions OpenSSL au lieu de McRypt pour les opérations de cryptage et de décryptage. Cet article fournira des étapes détaillées pour vous aider à passer en douceur à OpenSSL et à montrer comment implémenter le cryptage et le décryptage via un exemple de code.

2. Pourquoi remplacer McRypt?

Bien que Mcrypt ait été autrefois un outil de chiffrement largement utilisé, il présente des inconvénients évidents. Premièrement, McRypt n'a pas été mis à jour depuis longtemps et manque de prise en charge de nouveaux algorithmes et protocoles. Deuxièmement, pour le chiffrement des données à grande échelle, les performances de McRypt sont médiocres, ce qui peut facilement conduire à un temps d'exécution de PHP trop long. Plus important encore, dans PHP 7.1, McRypt est marqué comme dépassé et peut être supprimé à l'avenir. Par conséquent, la migration vers OpenSSL est une option plus sûre et plus efficace.

3. Remplacer McRypt par une extension OpenSSL

3.1. Installer une extension OpenSSL

Avant d'utiliser l'extension OpenSSL, vous devez d'abord vous assurer qu'il est installé et activé correctement. Voici les étapes d'installation:

 
sudo apt-get install openssl
sudo apt-get install libssl-dev
sudo pecl install openssl

Une fois l'installation terminée, modifiez le fichier php.ini et ajoutez la ligne suivante pour activer l'extension OpenSSL:

 
extension=openssl.so

3.2. Cryptage et décryptage à l'aide d'OpenSSL

Après avoir installé et activé l'extension OpenSSL, vous pouvez utiliser les fonctions qu'il fournit pour les opérations de cryptage et de décryptage. Voici un exemple simple qui montre comment crypter et déchiffrer les chaînes à l'aide d'OpenSSL:

 
<?php
function encrypt($data, $key) {
    // générer128vecteur aléatoire un peu
    $iv = openssl_random_pseudo_bytes(16);
    // utiliserAES-256-CBCAlgorithme Données cryptées
    $encrypted = openssl_encrypt($data, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
    // Renvoie les données et les vecteurs cryptés
    return base64_encode($encrypted) . ':' . base64_encode($iv);
}
<p>function decrypt($data, $key) {<br>
// Analyse des données et vecteurs cryptés<br>
list($encrypted, $iv) = explode(':', $data);<br>
// Décrypter les données<br>
return openssl_decrypt(base64_decode($encrypted), 'AES-256-CBC', $key, OPENSSL_RAW_DATA, base64_decode($iv));<br>
}</p>
<p>// utiliser示例<br>
$data = "Hello, World!";<br>
$key = "SecretKey123";<br>
$encryptedData = encrypt($data, $key);<br>
echo "Données cryptées:" . $encryptedData . "\n";<br>
$decryptedData = decrypt($encryptedData, $key);<br>
echo "Données décryptées:" . $decryptedData . "\n";<br>
?><br>

Dans cet exemple, nous avons utilisé l'algorithme AES-256-CBC pour le cryptage. La sécurité des données est assurée en générant un vecteur aléatoire 128 bits et en l'utilisant pendant le cryptage et le déchiffrement.

3.3. Notes

Lorsque vous utilisez des extensions OpenSSL, assurez-vous de faire attention aux points suivants:

  • Pour assurer l'utilisation d'un algorithme de cryptage sécurisé, il est recommandé d'utiliser AES-256-CBC.
  • Pendant le chiffrement et le déchiffrement, assurez-vous de générer et d'utiliser des vecteurs aléatoires.
  • Lors du chiffrement des données, les données doivent être stockées dans une méthode de codage appropriée.
  • Assurez-vous d'analyser correctement les données cryptées et les vecteurs avant de décrypter les données.

4. Conclusion

Le remplacement de McRypt par une extension OpenSSL est un moyen efficace d'améliorer la sécurité et les performances des opérations de chiffrement. L'extension OpenSSL prend en charge non seulement plus d'algorithmes de chiffrement, mais fournit également des capacités de traitement plus efficaces. Avec l'exemple de code fourni dans cet article, vous pouvez facilement implémenter les opérations de chiffrement et de décryptage en PHP, en vous garantissant que votre transmission et votre stockage de données sont plus sécurisés.

Veuillez ajuster et optimiser le code de manière appropriée en fonction des besoins réels pour vous assurer qu'il répond aux besoins de votre projet.