首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较bcrypt哈希

比较bcrypt哈希
EN

Stack Overflow用户
提问于 2012-07-11 15:31:20
回答 1查看 296关注 0票数 0

由于某些原因,身份验证失败。但是,如果我将散列输出到stdout,它是相同的。有谁知道出什么问题了吗?

代码语言:javascript
复制
if File.exists?(passwdFile)  
    File.open("#{passwdFile}",'r').each do |account|
      @account = account.split(':')
      usernameCheck = @account[0] # Stored username
      passwordCheck = @account[1] # Stored hashed password
      if username == usernameCheck
        # Create hash for given password to compare againts our stored one.
        password_hash = BCrypt::Engine.hash_secret(password, password_salt)
        puts "#{password_hash}"
        puts "#{passwordCheck}"
        if passwordCheck == password_hash
          @log.info 'Successfull authentication'
          return true

密码文件如下所示:

代码语言:javascript
复制
bob:$2a$10$1xNjCZxjv0R06qUm1lQEEeZ1uKuZ9ELQIkT2h5/TxCI9eHDurr.dW
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-11 15:41:35

File#each返回的行在行尾包含换行符,因此您的passwordCheck变量有一个尾随的换行符,但是bcrypt生成的散列没有。

您可以使用chomp删除换行符

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11427711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档