Comment utiliser le bcrypt l'algorithme de l'intérieur "chiffrer" la fonction MySQL pour la vérification de mot de passe?
J'ai bcrypted valeur($2y$10$zQaDT8hXM4pLmBdwN0xEseda/oKJAQKMKMzUrV8jbs6Epz28BXzBS
) de mot de passe (qwe
). Mais quand je suis en vérifiant, j'obtiens des erreurs dans la valeur de hachage.
mysql> select '$2y$10$zQaDT8hXM4pLmBdwN0xEseda/oKJAQKMKMzUrV8jbs6Epz28BXzBS' = encrypt('qwe', '$2y$10$zQaDT8hXM4pLmBdwN0xEseda/oKJAQKMKMzUrV8jbs6Epz28BXzBS') as is_valid;
+----------+
| is_valid |
+----------+
| 0 |
+----------+
select encrypt('qwe', '$2y$10$zQaDT8hXM4pLmBdwN0xEseda/oKJAQKMKMzUrV8jbs6Epz28BXzBS') as hash;
+---------------+
| hash |
+---------------+
| $2tBKnsbV2Szg |
+---------------+
md5
fonctionne très bien
mysql> select '$1$$.dCRcHz4ApIYzcA0g/qz3/' = encrypt('qwe', '$1$$.dCRcHz4ApIYzcA0g/qz3/') as is_valid;
+----------+
| is_valid |
+----------+
| 1 |
+----------+
Comment ajouter la prise en charge de bcrypt
à MySQL?
Vous auriez gérer cela dans la logique de l'application, la base de données.
je sais que c'. Mais...
En aucun cas, un simple mot de passe en texte frappé MySQL, même si au niveau de la requête. Sinon, vous risquez d'écrire les mots de passe pour vous connecter (journal de la requête, journal général, slow query log, etc). Qui est horribles. Donc non, même pas la peine...
MySQL savoir à propos de ce problème. mots de passe et connexion 5.5 et mots de passe et connexion 5.6
Aussi Est-il possible de cacher le mot de passe en MySQL GeneralSlow Journaux de Requêtes
je sais que c'. Mais...
En aucun cas, un simple mot de passe en texte frappé MySQL, même si au niveau de la requête. Sinon, vous risquez d'écrire les mots de passe pour vous connecter (journal de la requête, journal général, slow query log, etc). Qui est horribles. Donc non, même pas la peine...
MySQL savoir à propos de ce problème. mots de passe et connexion 5.5 et mots de passe et connexion 5.6
Aussi Est-il possible de cacher le mot de passe en MySQL GeneralSlow Journaux de Requêtes
OriginalL'auteur sectus | 2013-11-30
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas. MySQL
ENCRYPT()
fonction utilise le système d'exploitationcrypt()
fonction — si votre système d'exploitation ne prend pas en charge bcrypt de tables de hachage, MySQL va pas en charge non plus.Aussi, ne pas utiliser le MySQL
ENCRYPT()
fonction. Comme ircmaxell noté, toutes les données que vous transmettez à une requête MySQL peut se retrouver dans les fichiers journaux de serveur, il est donc potentiellement dangereux de l'utiliser pour quoi que ce soit de mot de passe.PHP 5.3 et plus tard l'utilisation de leur propre mise en œuvre de
crypt()
, au lieu de celui du système d'exploitation.OriginalL'auteur duskwuff