2016-07-06 149 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