2014-07-08 74 views
0

我試圖打包查看什麼會返回像這樣MSDN article 建議的md5散列值如果我嘗試使用列,則返回錯誤的值。例如:HashBytes('MD5',SomeValue)返回錯誤的md5散列

select Value, CONVERT(NVARCHAR(32),HashBytes('MD5', 'test'),2) from SomeTable 

結果是246A848AF2F8394E3ADBC738DBE43720

但是當我嘗試

select Value, CONVERT(NVARCHAR(32),HashBytes('MD5', Value),2) from SomeTable 

結果與價值測試細胞是C8059E2EC7419F590E79D7F1B774BFE6

+0

當你傳遞給hashbytes方法時,你是否將Value轉換爲nvarhcar? – Nadendla

回答

1

'test'varchar,不是nvarchar。嘗試

select Value, CONVERT(NVARCHAR(32),HashBytes('MD5', N'test'),2) from SomeTable 

返回C8059E2EC7419F590E79D7F1B774BFE6,你應該期望。

+0

C8059E2EC7419F590E79D7F1B774BFE6是錯誤的版本:( – SpoksST

+0

@SpoksST你爲什麼這麼認爲? – podiluska

+0

因爲外部提供者返回了md5,並且返回了第一個變體以及本地http://www.adamek.biz/md5-generator.php – SpoksST