MySQL Vérifier si le nom d'utilisateur et le mot de passe correspond dans la Base de données
J'ai un formulaire qui a une zone de texte avec le nom de l'attribut nom d'utilisateur et un autre avec le nom de l'attribut mot de passe.
J'ai aussi une base de données avec des colonnes appelé utilisateur et passer. Lorsque mes utilisateurs signé il ajouté son nom à la utilisateur colonne et le mot de passe à la passer colonne.
Comment pourrais-je faire une requête MySQL pour vérifier si le formulaire a soumis le nom d'utilisateur et le mot de passe et puis si il y avait une branche de me laisser entrer le code si il réussi?
J'ai vraiment besoin d'un peu de code, ce bit n'est pas bien je sais que ça doit être quelque chose comme SELECT * FROM table WHERE username == $username AND...
mais ensuite je suis bloqué parce que j'ai un mot de passe MD5 dans la base de données et que le premier bit est probablement faux. S'il vous plaît aider. 🙂
Grâce
Pouvez-vous nous montrer ce que le code que vous avez écrit dans cette tâche jusqu'à présent?
OriginalL'auteur Will Evans | 2011-03-12
Vous devez vous connecter pour publier un commentaire.
1.) De stockage de la base de données de mots de passe
Utiliser une méthode de hachage avec le sel, puis modifier la valeur de hachage, de masquer, par exemple, ajouter une valeur distincte pour chaque octet. De cette façon, vos mots de passe un super protégés contre les attaques par dictionnaire et rainbow tables.
2.) Pour vérifier si le mot de passe correspond, créer votre hachage du mot de passe de l'utilisateur. Puis d'effectuer une requête sur la base de données pour le nom d'utilisateur et simplement vérifier si les deux mots de passe sont identiques. Si elles le sont, de donner à l'utilisateur un jeton d'authentification.
La requête devrait alors ressembler à ceci:
Puis comparer le mot de passe à l'entrée.
D'autres questions?
Eh bien, je lui ai donné quelque chose à plonger dans. Je vais vous aider et d'expliquer les choses pour lui, s'il le demande.
vous ne comprenez pas, lol. Il est de la noyade dans les eaux peu profondes de la chaîne de base de la syntaxe. 🙂
0_0 j'ai vraiment besoin d'un peu de code, ce bit n'est pas bien je sais que ça doit être quelque chose comme SELECT * from table where username == $nom d'utilisateur ET... mais je suis bloqué parce que j'ai un mot de passe MD5 dans la base de données.... et que le premier bit est probablement faux. s'il vous plaît aider 🙂
S'il vous plaît aider ici 🙂
OriginalL'auteur Falcon
Vous n'avez pas besoin de sélectionner toutes les colonnes de la table, car vous avez seulement besoin du mot de passe. En outre, dans cette requête, seuls les enregistrements avec correspondance des noms d'utilisateur sont retournés, il compare les noms d'utilisateur de nouveau.
Maintenant 2017, c'est un vieux code. Ne pas utiliser. Aller pour
mysqli
à la place.OriginalL'auteur dave
Au lieu de sélectionner toutes les colonnes en compte de la count(*) vous pouvez limiter compter pour une colonne compte(nom d'utilisateur).
Vous pouvez limiter la recherche entière à une seule ligne par l'aide de la Limite de 0,1
OriginalL'auteur ArrayOutOfBound