Maison >développement back-end >tutoriel php >Quelles sont les alternatives sécurisées à l'extension mcrypt obsolète pour le cryptage et le déchiffrement des mots de passe ?

Quelles sont les alternatives sécurisées à l'extension mcrypt obsolète pour le cryptage et le déchiffrement des mots de passe ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-11 12:40:18225parcourir

What are the Secure Alternatives to the Deprecated mcrypt Extension for Password Encryption and Decryption?

Alternative à l'extension mcrypt obsolète pour le cryptage de mot de passe

L'extension mcrypt, précédemment utilisée pour le cryptage de mot de passe, est obsolète et sera supprimée entièrement en PHP 7.2. Cela soulève des inquiétudes quant à la recherche d'une alternative appropriée pour le cryptage sécurisé des mots de passe.

Approche recommandée : hachage de mot de passe

En tant que bonne pratique, il est fortement recommandé de hacher les mots de passe plutôt que de les chiffrer. Le hachage convertit les mots de passe en valeurs irréversibles, ce qui rend impossible aux attaquants de récupérer le mot de passe d'origine même s'ils accèdent à votre base de données ou à vos fichiers.

Méthodes de cryptage alternatives

Cependant, si vous avez besoin de chiffrer vos mots de passe et de pouvoir les déchiffrer, les options suivantes sont disponibles. recommandé :

  • Libsodium : Une extension PHP qui fournit un cryptage et un décryptage sécurisés.
  • defuse/php-encryption : Code PHP direct bibliothèque qui offre des capacités de cryptage et de décryptage sécurisées.
  • OpenSSL : A bibliothèque de chiffrement largement disponible qui peut être compilée avec PHP si elle n'est pas déjà installée sur votre serveur.

Exemple de code

Pour utiliser l'une de ces alternatives, vous pouvez suivez une structure similaire à votre mcrypt d'origine code :

// Generate a secure random initialization vector
$iv = random_bytes(16);

// Encrypt the password using AES-256 in CBC mode
// Note: Replace key with a securely generated encryption key
$encrypted = openssl_encrypt($string, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);

// Store the encrypted password and initialization vector for later decryption

Déchiffrement

Le déchiffrement peut être effectué en utilisant la même bibliothèque et la même clé :

// Decrypt the encrypted password using AES-256 in CBC mode
$decrypted = openssl_decrypt($encrypted, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);

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!

Déclaration:
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