bcrypt的慢/计算成本高的部分只是哈希生成部分,还是根据哈希验证密码的比较/比较函数也同样慢?
例如,假设:当用户注册时生成用户密码哈希所花费的时间与登录时验证密码所花的时间相同吗?
为了对密码生成攻击有一定的抵抗力,Bcrypt使用Blowfish密码的密钥扩展迭代。迭代次数定义为2的幂,in可以从2^4到2^31。它还使用盐对抗彩虹表
当新用户注册时,服务器会获取密钥并进行Bcrypt加密,然后将其存储。
当用户想要登录时,用户会将密码发送到服务器,服务器会再次对其进行Bcrypt以与存储的结果进行比较。
因此,比较还需要运行Bcrypt,这意味着它们将具有几乎相同的时间。