使用salt验证密码和mysql中的sha512whirlpool

时间:2016-09-28 14:26:37

标签: mysql hash salt sha512 whirlpool

如果看起来像这样的MySql表,那么SQL语句将验证密码是什么:

user_id   password     salt
-------   --------     ----
 1         23ed2...    m9f3m...

我试过了:

select * from password_table 
where user_id = 1 
and password = shal(`salt` + 'password') 
order by id desc 
limit 1

没有返回任何东西。该算法是sha512漩涡。

在php中它是这样的:

hash('sha512', hash('whirlpool', $password));

可能无法在sql语句中完成。

1 个答案:

答案 0 :(得分:1)

您无法使用SQL语句安全地散列和验证密码,因为无法搜索盐渍哈希,并且因为大多数数据库都不提供适当的哈希函数。

而是使用开发语言中的BCrypt,SCrypt或PBKDF2等哈希函数。对于验证,首先仅按用户名/ id搜索哈希值,然后再次使用开发语言验证找到的哈希值。