Le hashage est un processus de conversion d’une donnée (généralement une chaîne de caractères) en une valeur de longueur fixe, généralement sous forme de nombre hexadécimal. Cette valeur de hachage est unique pour une entrée donnée, ce qui permet d’identifier rapidement des données, de vérifier l’intégrité des données et de stocker des mots de passe de manière sécurisée.
En PHP, vous pouvez utiliser la fonction hash()
pour calculer des valeurs de hachage en utilisant divers algorithmes de hachage tels que MD5, SHA-1, SHA-256, etc.
phpCopy code
$data = "Ceci est une chaîne de données à hacher."; $hash = hash('md5', $data); echo "MD5 Hash : $hash";
Résultat :
MD5 Hash : 5d41402abc4b2a76b9719d911017c592
$data = "Ceci est une autre chaîne de données à hacher."; $hash = hash('sha256', $data); echo "SHA-256 Hash : $hash";
Résultat :
SHA-256 Hash : 322501f48c8a849c6be7e5a37c3a49c5206de1f3b64c4ee7f348bca59b6cd7ce
$password = "MotDePasseSecret"; $salt = bin2hex(random_bytes(16)); // Génère un sel de 16 octets $hashed_password = hash('sha256', $salt . $password); echo "Mot de passe haché avec sel : $hashed_password";
Résultat (le résultat variera car le sel est généré aléatoirement) :
Mot de passe haché avec sel : 4a65d4ff2c852a58c93ef18e42b6eef010a3b28a47b3ff7d88bf647f7a1934f5
Résultat (dépend de la correspondance ou de la non-correspondance des hachages) :Copy code
$stored_hashed_password = "HashStockeIci"; $user_input_password = "MotDePasseSecret"; // Recalcule le hachage $hashed_input_password = hash('sha256', $salt . $user_input_password); // Compare les hachages if ($hashed_input_password === $stored_hashed_password) { echo "Mot de passe correct."; } else { echo "Mot de passe incorrect."; }
Mot de passe correct.
Assurez-vous de stocker les hachages de mots de passe de manière sécurisée et de suivre les meilleures pratiques de sécurité lors de la gestion des mots de passe dans vos applications PHP.
Pour stocker le hachage de mots de passe dans une base de données Oracle à l’aide de PHP, vous pouvez utiliser la bibliothèque Oracle Database (OCI8). Voici un exemple de code qui illustre comment insérer un hachage de mot de passe dans une base de données Oracle :
<?php // Informations de connexion à la base de données Oracle $host = 'localhost'; // Adresse du serveur Oracle $port = '1521'; // Port du serveur Oracle $service_name = 'ORCL'; // Nom du service Oracle $username = 'votre_utilisateur'; // Nom d'utilisateur Oracle $password = 'votre_mot_de_passe'; // Mot de passe Oracle // Connexion à la base de données Oracle $conn = oci_connect($username, $password, "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=$host)(PORT=$port))(CONNECT_DATA=(SERVICE_NAME=$service_name)))"); if (!$conn) { $e = oci_error(); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); } // Données à insérer $username = 'utilisateur123'; $hashed_password = 'le_hachage_du_mot_de_passe'; // Assurez-vous d'avoir haché le mot de passe auparavant // Requête d'insertion $query = "INSERT INTO utilisateurs (nom_utilisateur, mot_de_passe_hash) VALUES (:nom_utilisateur, :mot_de_passe_hash)"; // Préparation de la requête $stid = oci_parse($conn, $query); // Liaison des paramètres oci_bind_by_name($stid, ':nom_utilisateur', $username); oci_bind_by_name($stid, ':mot_de_passe_hash', $hashed_password); // Exécution de la requête if (oci_execute($stid)) { echo "Mots de passe hachés insérés avec succès dans la base de données Oracle."; } else { $error = oci_error($stid); echo "Erreur lors de l'insertion des mots de passe hachés : " . $error['message']; } // Fermeture de la connexion oci_free_statement($stid); oci_close($conn); ?>
Assurez-vous d’adapter les informations de connexion à votre configuration Oracle. Dans cet exemple, nous nous connectons à la base de données Oracle, préparons une requête d’insertion, lions les paramètres et exécutons la requête pour insérer le hachage du mot de passe dans une table de la base de données Oracle.
Le hashage est une technique fondamentale pour sécuriser les données, notamment les mots de passe, dans les applications PHP. En utilisant les fonctions de hachage de PHP et en suivant les meilleures pratiques, vous pouvez garantir la sécurité des données sensibles et protéger vos utilisateurs contre les violations de données. 😉