Récupération sécurisée des mots de passe : au-delà du cryptage et du hachage
Bien qu'il soit crucial d'assurer la sécurité des données, le stockage d'informations sensibles telles que les mots de passe pose des défis uniques. Les chiffrer pour une récupération ultérieure peut sembler contre-intuitif, car l’essence du chiffrement réside dans le fait de rendre les données inaccessibles. Cependant, une stratégie de cryptage et de déchiffrement bien définie peut surmonter cet obstacle.
En PHP, vous ne pouvez pas simplement utiliser une fonction de hachage comme bcrypt pour les mots de passe car il s'agit d'une conversion à sens unique, rendant la récupération impossible. Pour résoudre ce problème, pensez à utiliser une combinaison de méthodes de cryptage et de brouillage qui vous permettent de récupérer le mot de passe d'origine tout en préservant sa sécurité.
Une solution de cryptage complète
Pour sécuriser crypter et déchiffrer les mots de passe, considérez le PHP suivant code :
$key = 'password to (en/de)crypt'; $string = ' string to be encrypted ';
// Encryption $iv = mcrypt_create_iv( mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC), MCRYPT_DEV_URANDOM ); $encrypted = base64_encode( $iv . mcrypt_encrypt( MCRYPT_RIJNDAEL_128, hash('sha256', $key, true), $string, MCRYPT_MODE_CBC, $iv ) );
// Decryption $data = base64_decode($encrypted); $iv = substr($data, 0, mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC)); $decrypted = rtrim( mcrypt_decrypt( MCRYPT_RIJNDAEL_128, hash('sha256', $key, true), substr($data, mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC)), MCRYPT_MODE_CBC, $iv ), "" );
Considérations essentielles
Il est important de noter que le code fourni crypte les informations mais n'authentifie pas le texte chiffré pour éviter toute falsification . Pour une sécurité renforcée, il est recommandé de ne pas s'appuyer uniquement sur un cryptage non authentifié.
Ressources supplémentaires
Explorez les ressources suivantes pour en savoir plus idées :
Attention : Sécurité de la clé de cryptage
N'utilisez jamais de « mot de passe » comme clé de cryptage ; les clés de cryptage doivent être des chaînes aléatoires.
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!