Maison >développement back-end >tutoriel php >Comment PHP peut-il chiffrer et déchiffrer les données en toute sécurité, et comment gère-t-il le hachage de mot de passe ?
Cryptage et décryptage en PHP
Cryptage des données sensibles
PHP propose divers algorithmes de chiffrement et méthodes pour protéger les données sensibles stockées dans les bases de données. Vous pouvez chiffrer des champs spécifiques, tels que Fname, Lname et Email, à l'aide de chiffrements symétriques comme AES-256-CBC. De plus, vous devez générer un vecteur d'initialisation (IV) pour chaque opération de cryptage et le stocker pour le décryptage.
Processus de décryptage
Pour décrypter les données cryptées, suivez un processus similaire. Vous aurez besoin de la même clé de cryptage et de la même IV que celles utilisées lors du cryptage. Le décryptage donne les valeurs originales en texte brut.
Hachage unidirectionnel avec SHA256 et Salt
Pour la sécurité des mots de passe, vous pouvez hacher les mots de passe en utilisant SHA256 en conjonction avec un sel fort. Implémentez une fonction qui génère un sel aléatoire et le combine avec le mot de passe avant le hachage. Cela ajoute une couche supplémentaire de protection contre les attaques par force brute.
Exemple :
function generatePasswordHash($password) { $salt = bin2hex(openssl_random_pseudo_bytes(16)); return hash('sha256', $salt . $password) . $salt; }
Vérification des mots de passe
Lors de la vérification des mots de passe, utilisez une fonction de comparaison à temps constant pour éviter les attaques temporelles. Pour chaque tentative de connexion, hachez à nouveau le mot de passe fourni en utilisant le même sel que le hachage d'origine et comparez les résultats.
Exemple :
function verifyPassword($suppliedPassword, $storedHash) { $saltedPassword = substr($storedHash, 64); return hash('sha256', $saltedPassword . $suppliedPassword) == $storedHash; }
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!