【发布时间】:2018-01-01 17:25:18
【问题描述】:
在 MSSQL 环境中,我有一个用于生成哈希的存储过程。目前,存储过程使用 MD5(带有适当的安全密钥)。
我正在尝试更改存储过程,以便它改用 Blowfish。
存储过程中的当前行是:
select @hashedvalue = convert(nvarchar(32),hashbytes('MD5',@querystring+@hashpassword),2)
请问通过 Blowfish 而不是 MD5 散列的正确语法是什么?
我查看了this,但无法确定应该使用哪个算法选项...
谢谢!
【问题讨论】:
-
Blowfish 本身不是散列算法。为什么要使用 Blowfish?也许你真正想要的是bcrypt。
-
当保存密码验证器时,仅使用哈希函数是不够的,并且仅添加盐对提高安全性无济于事。而是使用随机盐迭代 HMAC 约 100 毫秒的持续时间,然后将盐与哈希一起保存。使用
PBKDF2、Rfc2898DeriveBytes、password_hash、Bcrypt、passlib.hash等函数或类似函数。关键是让攻击者花费大量时间通过蛮力寻找密码。
标签: sql-server hash cryptography md5 blowfish