2016-07-06 1 views
1

J'ai besoin d'extraire les mots de passe SHA1 à partir d'une base de données Microsoft SQL Server afin de les utiliser dans un système externe.Comment sélectionner des valeurs de hachage SHA1 correctement?

Quand je fais une simple requête de sélection pour un mot de passe connu, je reçois ce résultat (mot de passe est « mot de passe »):

"{SHA1=5b9febc2d7429c8f2002721484a71a84c12730c7}" 

Mais il faut 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8.

Toute idée comment sélectionner pour obtenir la valeur attendue 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8?

+1

S'il vous plaît coller votre script – Deadpool

+0

Pourquoi ne pouvez-vous utiliser simplement des fonctions de chaîne pour le faire? Stack Overflow n'est pas un service d'écriture de code. – usr

+0

mon problème ne consiste pas à sélectionner juste la valeur. mon problème est que les valeurs de hachage ne correspondent pas. – xyaonline

Répondre

3

Le hachage SHA1 est effectué sur des octets, pas sur des caractères, il est donc important de s'assurer que la conversion des caractères en octets est effectuée avec un codage convenu.

5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 est le hachage SHA1 de password codé en ASCII/UTF-8.

5b9febc2d7429c8f2002721484a71a84c12730c7 est le hachage SHA1 de password codé en UTF-16-BE.

Pour résoudre ce problème, choisir un encodage, et changer le code que l'autre utilise le codage pour correspondre.

+0

Bon sleuthing. – usr