【问题标题】:How to verify a password using BCrypt如何使用 BCrypt 验证密码
【发布时间】:2014-03-20 06:29:13
【问题描述】:

如何检查用户输入的密码是否与其他人已散列并存储到数据库中的密码匹配。通常你会用这个对吗?:

bool value = BCryptHelper.CheckPassword("Tom123", passwordHash);

如果您没有包含散列密码的 passwordHash 变量怎么办?

我对 BCrypt 的工作原理不是很了解,所以我认为我遗漏了一些非常简单的东西。

【问题讨论】:

  • 加密用户输入的密码,比较hash
  • passwordHash 是您从数据库中获得的信息。它是用户在创建帐户时输入的密码的哈希值。
  • @Ehsan 这真的没有帮助,根本没有回答我的问题。
  • @JonathonReinhart 我知道密码哈希是什么。这根本不能回答我的问题。
  • @Maattt 加密用户输入的密码将为您提供散列密码。如果用户输入了正确的密码,那么哈希应该与存储在数据库中的相同。

标签: c# bcrypt password-hash


【解决方案1】:

这是答案的提示。您可以点击链接了解更多详细信息。

string salt = BCryptHelper.GenerateSalt(6);
var passwordHash= BCryptHelper.HashPassword("Tom123", salt);

bool value = BCryptHelper.CheckPassword("Tom123", passwordHash);

http://www.dreamincode.net/forums/blog/1267/entry-3301-c%23-using-bcrypt-in-a-net-application-why-its-better-than-sha-or-md5/

【讨论】:

  • 我知道这段代码是如何工作的,我的问题是我不是散列和​​存储密码的人。它是由其他人完成的,因此我没有在该行代码中使用 passwordHash 变量来检查用户输入的密码。
  • 那你应该得到密码哈希来解密,否则你就是黑客!!!
  • 是的,对不起,我想太多了。
猜你喜欢
  • 1970-01-01
  • 2016-10-20
  • 1970-01-01
  • 1970-01-01
  • 2018-06-30
  • 2016-09-28
  • 1970-01-01
  • 2016-02-27
  • 1970-01-01
相关资源
最近更新 更多