当前位置: 首页 > 知识库问答 >
问题:

比较bcrypt加密的密码

田嘉澍
2023-03-14

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

共有1个答案

鞠自明
2023-03-14

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

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

 类似资料:
  • 在对UserDetailsService的自定义实现使用Bcrypt之前,我首先想看看是否可以在内存数据库中使用它。 创建/公开PasswordEncoder bean时,会弹出此警告,最终阻止我访问登录路径: 添加不推荐使用的NoOpPasswordEncoder将暂时解决此问题,但显然不会对密码进行编码: 添加Bcrypt的正确方法是什么?

  • 我有一个简单的密码加密程序,当用户注册时,它会给我一个散列/盐析密码,以存储在我的数据库中。代码: 当用户登录时,我想我不能简单地通过此代码将输入的密码放回并进行比较,因为这会给我一个不同的结果。如何简单地将存储的密码与输入的登录密码进行比较?

  • X2.1.0新增 sp_compare_password($password,$password_in_db) 功能: CMF密码比较方法,所有涉及用户密码比较的地方都用这个方法 参数: $password: 用户输入的密码 $password_in_db:数据库保存的经过加密后的密码串 返回: 类型boolean,密码相同,返回true 使用: $is_right = sp_compare_p

  • 我的应用程序中有一个用例,它应该防止用户在重置密码时选择最后3个密码中的一个。我使用Angular作为前端,spring boot作为后端。在我的场景中,用户密码存储为bcrypt哈希。 如何将用户输入的密码与最近3个存储的bcrypt密码进行比较? 当我运行下面的代码片段示例时, 它生成以下bcrypt哈希。每个散列都是不同的,这是合理的,因为当我检查时,我可以看到生成的salt是随机值。 sp

  • 问题内容: 我想用散列密码,以后再验证提供的密码是否正确。 散列密码很容易: 如何将纯文本密码与存储的哈希值进行比较? 问题答案: 使用py-bcrypt,您不需要单独存储盐:将盐存储在哈希中。 您可以简单地将哈希用作盐,盐将存储在哈希的开头。

  • 我已经使用带有JPA的安全性实现了。我的所有RESTendpoint现在都可以验证客户端请求的头。密码的验证由框架完成。现在我需要能够验证一个密码与存储的密码哈希。 在默认配置下,用户密码以散列形式存储,并使用函数。如何检查给定的密码字符串是否与存储的bcrypt哈希值匹配? 来源:https://quarkus.io/guides/security-jpa