Je travaille actuellement sur un site en asp.net et j'utilise une base de donnée microsoft pour stocker mes données.
Entre autre, le pseudo et le mot de passe de mon utilisateur.
C'est la première fois que j'utilise des fonctions de hashage et j'éprouve quelques difficultés avec celles-ci.
1) J'arrive à récupérer des informations d'un utilisateur que je viens de créer avec comme mot de passe '1234'
Je l'insère avec une stored procedure qui utilise la fonction HASHBYTES('SHA2_512',@password) avec @password passé en argument.
J'arrive ensuite à sélectionner cet utilisateur avec la query suivante
select * from people
where password = HASHBYTES('SHA2_512','1234');
Par contre, je n'arrive pas à récupérer les utilisateurs insérés il y a quelques jours.
Utilisateurs ayant des mdp soit en chaine de caractères simple comme 'zen' soit avec des caractères spéciaux comme 'Test1234='
2) ma stored procedure ne fonctionne pas comme prévu quand je fais un 'WHERE' avec deux arguments
BEGIN
IF EXISTS(SELECT id FROM [PonderoStat].[dbo].[people]
WHERE LOWER(pseudo) = LOWER(@pseudo) AND HASHBYTES('SHA2_512',@password) = people.password)
BEGIN
SELECT 1;
END
ELSE
BEGIN
SELECT 0;
END
END
Ceci me retourne systématiquement 0
Alors que ceci
IF EXISTS(SELECT id FROM [PonderoStat].[dbo].[people] WHERE people.password= HASHBYTES('SHA2_512','1234') AND people.pseudo = '1234')
BEGIN
SELECT 'True';
END
Else
BEGIN
SELECT 'False';
END
Me retourne bien 'True'.
Je suis un peu perdu et ne sais plus trop où regarder pour corriger mon erreur.
Ça n'a pourtant pas l'air bien compliqué :/
[T-SQL]Difficultés pour vérifier un utilisateur
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.