我正在创建一个数据库,我需要存储用户密码。我已经在使用bcrypt来对客户端的密码进行哈希处理,但我已经读过,在数据库方面,只有客户端的哈希才能使哈希本质上等同于密码。我想在将密码存储在数据库中之前再次对密码(现在是哈希)进行哈希处理。我是否必须使用像SHA2(pwd)
这样的原生方法,或者有没有办法在服务器上使用bcrypt?
答案 0 :(得分:0)
Bcyrpt在这里是一个很好的调用,但你应该在服务器端进行散列,而不是客户端。客户端无法知道生成您可以验证的哈希所需的所有信息,只有服务器具有该信息。
您需要做的是安全地传递密码,例如通过HTTPS,并在应用程序层中对其进行哈希处理。仅MySQL不具备进行正确密码散列所需的功能。 SHA2完全不合适,它是一种高速哈希设计,使其立即不适合。密码散列算法故意使得暴力破解密码非常昂贵。