如何使用BCrypt接受密码

问题描述 投票:0回答:1

最近,当我尝试使用密码保存记录时,我开始收到BCrypt“无效哈希”错误,因此我查看了BCrypt代码,发现了以下用于验证密码的方法:

  def valid_hash?(h)
    h =~ /^\$[0-9a-z]{2}\$[0-9]{2}\$[A-Za-z0-9\.\/]{53}$/
  end

我对正则表达式不是很了解,所以我不确定该表达式到底在寻找什么,但是我已经测试了许多完全不同长度的完全正常的密码,但都不满足要求。例如:

"PassiveForbearenceFox"
"VindictivePurpleAlligator12345"
"LostBlueLizard!@#$1234" 

全部返回零。

这是故意的吗?这是BCrypt之前使用的正则表达式吗?我需要更改吗?

ruby-on-rails regex ruby validation bcrypt
1个回答
-1
投票

这并不意味着Bcrypt的valid_hash吗?方法错误,表示存储的密码无效或与有效哈希系统不匹配的nil。

您可能必须添加

has_secure_password

如果没有,请在此之后检查password_digest字段。

© www.soinside.com 2019 - 2024. All rights reserved.