J'essaie de faire une requête sur une table de nom d'utilisateur où le nom d'utilisateur et le mot de passe correspondent. La table est une table préexistante (créée lors de l'installation du logiciel de l'entreprise) et je n'ai pas la possibilité de modifier les types ou méthodes de chiffrement. Une requête avec une chaîne en tant que mot de passe fonctionne parfaitement mais lorsque j'essaie d'interroger en utilisant un entier, la requête renvoie null.Comment utiliser la valeur entière avec la requête SQL Server utilisant HashBytes
"SELECT *
FROM ITF_USER
WHERE ITF_LOGIN = '$lcUserName'
AND ITF_PASS = HashBytes('SHA1', '$lcPassword')";
si le mot de passe est quelque chose comme 'helloworld'
alors la requête fonctionne très bien, mais '1121321'
ne retourne rien. Aucune suggestion?
MISE À JOUR Si je compare la table stockée mot de passe avec le SHA1 de php (lcPassword $) résultats que je vois une légère différence qui est à l'origine des résultats de la requête null:
table -> 0x3FEEAC0B3A75CF1C12A8420CDE593FA275CCE584
sha1()-> 8feeac0b3a75cf1c12a8420cde598fa275cce584
il y a deux 8 est dans la SHA1() les résultats qui devraient être 3 de
Pour SQL, il importe peu si vous passez ' « ou 'hello'' » 123'', il est toujours une chaîne. Le problème est peut-être dans d'autres codes; vérifiez le code qui définit ou met à jour le mot de passe. – Andomar