Maison > Article > base de données > Comment utiliser le cryptage MD5 dans MySQL
MD5 Message-Digest Agorithm (anglais : MD5 Message-Digest Agorithm), une fonction de hachage de mot de passe largement utilisée, peut produire une valeur de hachage de 128 bits (16 octets) (valeur de hachage), utilisée pour garantir que le transfert d'informations est complet et cohérent. MD5 a été conçu par le cryptographe américain Ronald LinnRivest et rendu public en 1992 pour remplacer l'algorithme MD4. Le programme de cet algorithme est spécifié dans la norme RFC1321. Après 1996, il a été confirmé que l'algorithme présentait des faiblesses et pouvait être piraté. Pour les données nécessitant une haute sécurité, les experts recommandent généralement d'utiliser d'autres algorithmes, tels que SHA-2. En 2004, il a été confirmé que l'algorithme MD5 ne pouvait pas empêcher les collisions. Ne convient pas à l'authentification de sécurité, telle que l'authentification par clé publique SSL ou les signatures numériques.
Préparez une table utilisateur simple dans MySQL pour les opérations de cas.
Ensuite, testez diverses instructions SQL :
Instruction d'insertion normale (mot de passe en texte brut) :
-- 普通新增语句(明文密码) insert into user(uname,upass) values ('tom','1001');
Crypter lors de l'insertion d'informations** : **
-- 插入时使用MD5 算法加密 insert into user(uname,upass) values ('jack',MD5('1002'));
Résultats de la vue de la requête :
Modification : utiliser l'algorithme MD5 Modifier le mot de passe de l'administrateur du compte.
-- 将原密码换为MD5加密后的密码 update user set upass=MD5(upass) where id =1; -- 将原密码123456修改为 MD5加密后的密码(666) update user set upass=MD5('666') where id =2;
Résultat :
Crypter tous les mots de passe :
-- 加密全部密码 update user set upass=MD5(upass)
Requête conditionnelle, vérifier :
-- 根据账号密码 查询对应账号信息 select * from user where uname='admin' and upass=MD5('123')
-- 测试 将密码修改为666 的账号信息 select * from user where uname='root' and upass=MD5('666')
Ce qui précède est un moyen simple d'utiliser Algorithme MD5 à certaines informations dans le Chiffrement de la base de données mysql, des connaissances spécifiques doivent être réglées.
(1) Fonction PASSWORD() :
-- password() 函数加密 update userinfo set password =password('333') where id=6 -- 查询验证 select * from userinfo where password=password('333')
password(str) calcule et renvoie la chaîne de mot de passe cryptée à partir du mot de passe en clair d'origine str. Lorsque le paramètre est nul, null est renvoyé. Le cryptage des mots de passe est unidirectionnel et irréversible.
(2) Fonction ENCODE()
La fonction ENCODE(str, pass_str) est utilisée pour encoder des chaînes de texte brut et renvoyer des chaînes binaires après l'encodage.
Utilisez pswd_str comme mot de passe pour crypter str.
str : C'est utilisé pour spécifier le texte brut à encoder
pass_str : Il est utilisé pour spécifier la chaîne de mot de passe pour encoder la chaîne de texte brut
-- 字符串 select encode('hello','nice')
-- 字符串和数字 select encode('nihao666','nice')
(3) DECODE(crypt_str,pass_str)
. Utilisez pswd_str comme mot de passe pour déchiffrer la chaîne cryptée. crypt_str est la chaîne renvoyée par encode().
select DECODE('nihao666','nice')
-- 使用decode函数解密encode加密的字符串 select DECODE(ENCODE('nihao666','nice'),'nice');
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!