【发布时间】:2019-05-17 11:32:56
【问题描述】:
bcrypt 的慢速/计算成本高的部分只是哈希生成部分,还是根据哈希验证密码的比较/比较函数也同样慢?
例如:在注册时生成用户密码哈希会与在登录时验证密码所花费的时间相同吗?
【问题讨论】:
标签: javascript node.js security authentication bcrypt
bcrypt 的慢速/计算成本高的部分只是哈希生成部分,还是根据哈希验证密码的比较/比较函数也同样慢?
例如:在注册时生成用户密码哈希会与在登录时验证密码所花费的时间相同吗?
【问题讨论】:
标签: javascript node.js security authentication bcrypt
为了对密码生成攻击有一定的抵抗力,Bcrypt 对Blowfish 密码的密钥扩展使用迭代。迭代次数定义为 2 的幂,in 可以从 2^4 到 2^31。它还使用盐来对付Rainbow Tables
当新用户注册时,服务器获取密钥并 Bcrypt 然后存储。
当用户想登录时,用户将密码发送给服务器,服务器再次对其进行Bcrypt与存储的结果进行比较。
因此,比较还需要运行 Bcrypt,这意味着它们的时间几乎相同。
【讨论】: