J'essaie de faire correspondre un md5 a (généré par php) à sa valeur d'origine dans une base de données SQLExpress.MD5 Hashes ne correspondant pas
J'utilise la fonction suivante dans ma requête SQL
master.sys.fn_varbintohexsubstring(0, HASHBYTES('MD5', 'ID'), 1, 0)
Où « ID » est le champ dans la base de données.
Cependant, ils semblent tous les deux renvoyer des valeurs différentes pour le hachage md5. J'ai utilisé '12290' comme valeur statique pour tester ceci.
php md5() retourne: 0bd81786a8ec6ae9b22cbb3cb4d88179
L'instruction SQL suivante retourne la même sortie:
DECLARE @password VARCHAR(255)
SET @password = master.sys.fn_varbintohexsubstring(0, HASHBYTES('MD5', '12290'), 1, 0)
SELECT @password
Pourtant, quand je lance la déclaration suivante de la table:
SELECT ID, master.sys.fn_varbintohexsubstring(0, HASHBYTES('MD5', CONVERT(NVARCHAR(255), ID)), 1, 0) AS temp
FROM Clients
ORDER BY ID ASC
Le La valeur 'temp' correspondant à la valeur 'ID' de 12290 renvoie: 1867dce5f1ee1ddb46ff0ccd1fc58e03
Toute aide sur le sujet serait grandement appréciée!
Merci
Je ne suis pas familier avec la fonction de conversion que vous utilisez, mais pourquoi ne pas juste faire une comparaison directe? C'est juste une chaîne, alors comparez-la à la valeur hachée que vous avez obtenue de php? – kinakuta
avez-vous essayé avec 'VARCHAR()' à la place sur 'NVARCHAR()'? –
En utilisant VARCHAR() à la place travaillé, merci! – baked