提问者:小点点

比较bcrypt加密的密码


我有一个网页,使用bcrypt加密用户名密码,这些密码然后存储在数据库中。我有一个运行在QT上的C++程序,它需要对用户进行身份验证,为了做到这一点,我必须加密用户输入的密码,并将其与数据库中的密码进行比较。这是正确的做法吗?如果是的话,我该如何做到这一点?用户输入的密码的加密必须与bcrypt的加密相同,我如何做到这一点?提前道谢。


共1个答案

匿名用户

实际上你不加密密码,因为他们可能是可以解密的。正确的方法是对密码进行哈希并存储哈希值。如果用户输入了密码,您还会对该值进行哈希,并将其与保存的哈希值进行比较。这是正确的方法,因为哈希函数是单向函数(不可逆),参见这里。

哈希方法防止有人解密密码。您应该注意像SHA-2或SHA-3这样的安全哈希函数,因为有些哈希函数不再安全,请参阅断开的哈希函数列表。