2016-07-06 145 views
1

我需要从Microsoft SQL Server数据库中提取SHA1密码才能在外部系统中使用它们。如何正确选择SHA1哈希值?

当我做了一个已知的密码,一个简单的选择查询,我得到这样的结果(密码为 “password”):

"{SHA1=5b9febc2d7429c8f2002721484a71a84c12730c7}" 

但应5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8

任何想法如何选择它来获得预期值5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8

+1

请粘贴您的脚本 – Deadpool

+0

为什么你不能只使用字符串函数来做到这一点?堆栈溢出不是代码写入服务。 – usr

+0

我的问题不在于选择价值。我的问题是散列值不匹配。 – xyaonline

回答

3

SHA1哈希是在字节上完成的,而不是在字符上完成的,因此确保从字符到字节的转换是使用商定的编码完成的,这一点很重要。

5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8是以ASCII/UTF-8编码的password的SHA1散列。

5b9febc2d7429c8f2002721484a71a84c12730c7是以UTF-16-BE编码的password的SHA1哈希。

要解决此问题,请选择一种编码,并更改使用其他编码匹配的任何代码。

+0

好侦探。 – usr