2017-07-26 54 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或其他迭代哈希解决方案。