À l'ère Internet moderne, la sécurité des mots de passe est cruciale. Pour protéger la confidentialité des utilisateurs, les sites Web stockent et traitent généralement les informations de mot de passe utilisateur via le chiffrement et la vérification du mot de passe. Cet article expliquera comment utiliser PHP et SQLite pour implémenter cette fonctionnalité.
Le cryptage de mot de passe consiste à convertir le mot de passe en texte clair saisi par l'utilisateur en une chaîne de chaînes aléatoires illisibles. Même si les données de la base de données sont divulguées, le mot de passe ne sera pas exposé en texte brut. Dans PHP, la fonction Password_Hash () peut être utilisée pour implémenter le cryptage de mot de passe.
// Exemple de cryptage de mot de passe
$password = "123456";
$hash = password_hash($password, PASSWORD_DEFAULT);
Dans le code ci-dessus, $ mot de passe représente le mot de passe en clair entré par l'utilisateur, tandis que $ hash est le mot de passe chiffré. La fonction password_hash () générera un mot de passe crypté basé sur l'algorithme par défaut actuel.
Lorsqu'un utilisateur se connecte, il est nécessaire de vérifier que le mot de passe entré est cohérent avec le mot de passe crypté stocké dans la base de données pour assurer la légitimité de l'identité de l'utilisateur. Dans PHP, vous pouvez utiliser la fonction Password_verify () pour la vérification.
// Exemple de vérification du mot de passe
$password = "123456";
$hash = "$2y$10$KZxpkRfkBrmJr9X11qaIjeJf1cgjF9OXmcruE/YqLqKx6F79KRjlC";
if (password_verify($password, $hash)) {
echo "La vérification du mot de passe s'est écoulée";
} else {
echo "La vérification du mot de passe a échoué";
}
Dans cet exemple, $ mot de passe est le mot de passe en texte clair entré par l'utilisateur, et $ hash est le mot de passe chiffré récupéré à partir de la base de données. La fonction Password_verify () peut être utilisée pour déterminer si le mot de passe correspond.
Dans cet exemple, nous utiliserons la base de données SQLite pour stocker les informations de mot de passe de l'utilisateur. SQLite est une base de données intégrée légère qui ne nécessite pas de serveur de base de données externe et convient aux petits projets ou à une utilisation personnelle.
Tout d'abord, créez une base de données SQLite et configurez une table utilisateur pour stocker les informations de mot de passe.
// créerSQLitebase de données
$db = new SQLite3("mydb.db");
// créer用户表
$query = "CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT NOT NULL,
password TEXT NOT NULL
);";
$db->exec($query);
Ensuite, stockez le mot de passe crypté dans la base de données.
// 将密码存储到base de données
$password = "123456";
$hash = password_hash($password, PASSWORD_DEFAULT);
$query = "INSERT INTO users (username, password) VALUES ('user1', '$hash')";
$db->exec($query);
Après avoir terminé le stockage crypté du mot de passe, l'utilisateur doit effectuer une vérification du mot de passe lors de la connexion.
// Connexion de l'utilisateur
$username = "user1";
$password = "123456";
// 从base de données中获取密码
$query = "SELECT password FROM users WHERE username = '$username'";
$result = $db->querySingle($query);
// Vérifier le mot de passe
if (password_verify($password, $result)) {
echo "Connectez-vous avec succès";
} else {
echo "La connexion a échoué";
}
// 关闭base de données连接
$db->close();
Grâce à ces codes, nous pouvons implémenter les fonctions de chiffrement et de vérification des mots de passe utilisateur pour assurer la sécurité des mots de passe utilisateur et éviter la fuite d'informations sensibles.
PHP et SQLite fournissent un moyen simple et efficace de crypter et de vérifier les mots de passe. En utilisant ces fonctions raisonnablement, nous pouvons améliorer efficacement la sécurité du site Web et protéger la confidentialité des utilisateurs.