bcrypt的速度慢/计算量昂贵的部分仅仅是哈希生成部分,还是比较/比较功能(针对哈希验证密码)也一样慢?
例如,假设:在注册时生成用户密码哈希值与登录时验证密码所花费的时间相同吗?
答案 0 :(得分:0)
为了抵御密码生成攻击,Bcrypt对Blowfish密码的密钥扩展使用迭代。次数迭代定义为2的幂,in可以从2 ^ 4到2 ^ 31。它还对Rainbow Tables
使用了盐新用户注册后,服务器将获取密钥并对其进行Bcrypt加密。
当用户想要登录时,用户将密码发送到服务器,然后服务器再次对其进行加密以与存储的结果进行比较。
因此,比较还需要运行Bcrypt,这意味着它们将具有几乎相同的时间。