2017-07-26 44 views
1

在MSSQL環境中,我有一個存儲過程用於生成散列。目前,存儲過程使用MD5(具有適當的安全密鑰)。MSSQL:從MD5到Blowfish

我正在嘗試更改存儲過程,以便它使用Blowfish。

當前行中的存儲過程是:

select @hashedvalue = convert(nvarchar(32),hashbytes('MD5',@[email protected]),2)

什麼是經由河豚散列而不是MD5,請正確的語法?

我看了一下this但我不能工作了哪種算法的選擇,我應該使用...

謝謝!

+2

河豚不是散列算法本身。你爲什麼要使用河豚?也許你真正想要的是[bcrypt](https://en.wikipedia.org/wiki/Bcrypt)。 –

+1

僅使用散列函數保存密碼驗證者是不夠的,僅僅添加鹽對提高安全性沒有多大作用。相反,用隨機鹽迭代HMAC約100ms持續時間,然後用散列表保存鹽。使用諸如'PBKDF2','Rfc2898DeriveBytes','password_hash','Bcrypt','passlib.hash'或類似函數的函數。關鍵是要讓攻擊者花費大量時間通過強力查找密碼。 – zaph

回答

1

HASHBYTES不支持河豚

你可能會需要使用CLR函數(搜索一個)或看到什麼this from Chilkat確實

個人而言,我會用SHA2_512簡單的哈希值。 密碼哈希是不同的,你需要bcrypt或其他迭代哈希解決方案。