问题标签 [bcrypt-ruby]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
481 浏览

mysql - Ruby 和 Sinatra,无法将散列密码与 BCrypt 进行比较

我正在使用 Sinatra 和 DataMapper 开发一个简单的 Ruby 身份验证应用程序。

我已经成功实现了用户注册时的哈希密码方法,但是我无法使身份验证路由正常工作,它根本不匹配提供的密码与存储在数据库(MySQL)中的哈希版本。

在阅读了很多文档、关于 stackoverflow 的很多问题以及更多文档之后,我在这里寻求您的帮助。

我创建了一个简单的 GET 路由来尝试了解 BCrypt 库的工作原理,而不将密码存储到数据库中,此路由的目的只是了解如何使用该库:

所以基本上我所要做的就是向 /test 发送一个 GET 请求,一切都应该完成,但事实并非如此,BCrypt::Password.new 似乎没有根据散列密码验证原始密码。

提前感谢您,任何帮助将不胜感激。

0 投票
1 回答
703 浏览

mysql - MYSQL Password Encryption with BCrypt

I'm automating the process of creating WordPress sites with a custom shell script. Is it possible to encrypt MYSQL passwords with BCrypt for WordPress? If so, what's the best way to approach this?

Snippet:

With Ruby, I can encrypt it like so:

0 投票
1 回答
222 浏览

ruby-on-rails - 实施 has_secure_password 后的错误消息

我在 Rails 中开发了一些运行良好的测试。然后我补充说:

  • 在模型文件中:has_secure_password
  • 在 Gem 文件中:gem 'bcrypt', '3.1.7' (捆绑安装后它显示在 Gemfile.lock 中)
  • 我将 password_digest 作为字符串添加到迁移文件中(迁移后它确实显示在 schema.rb 中)

我在测试文件中添加了密码和密码确认设置:

现在,当我运行时,rake test我收到错误消息:

NoMethodError: undefined method 'password_digest=' for #<User:0x00000002f9c020> test/models/user_test.rb:6:in 'setup'.

第 6 行指的是 @user = User.new ...

所以它似乎已经正确地实现了 gem 和附加列,但是我收到了这个错误消息。有谁知道可能是什么原因?

0 投票
1 回答
406 浏览

ruby - 无法安装 bcrypt-ruby,阻止设备升级,“无法构建原生 gem 扩展”

我在 Mac OSX 10.10.2 上。在尝试将设备从 2.1.2 升级到 2.2.8(通过更新 Gemfile 中的版本)时,bundle install尝试安装 bcrypt 3.1.10 并因以下输出而崩溃:

我尝试了一些在搜索中发现的修复,例如:

(同样的错误)

从 github ( https://github.com/codahale/bcrypt-ruby )下载 gem 源并尝试从本地 gemfile 安装(同样的错误)。

用 卸载 bcrypt-ruby gem uni bcrypt,用 重新安装gem i bcrypt-ruby --platform=ruby(同样的错误)

如果我将用户设置为 root sudo su -,我可以使用以下输出运行安装:

但是,如果我退出根目录,捆绑安装仍然会失败。

运行 rvm 1.25.3、ruby 1.9.3、gem 2.2.2、Bundler 版本 1.9.4、Xcode 6.3、命令行工具 6.3

有任何想法吗?

0 投票
4 回答
4083 浏览

ruby-on-rails - Rails 4 - 仅当当前密码正确时才允许更改密码

在我的应用中,用户可以编辑他们的个人资料信息。在编辑个人资料表单上,用户可以更改所有字段(姓名、职务等)。在同一个表单上是三个字段:current_passwordpasswordpassword_confirmation。我正在使用bcrypt'shas_secure_password功能进行密码验证。我根本不使用设计。

我希望用户只有在提供正确的当前密码时才能更改密码。我之前在update我的用户控制器的方法中使用以下代码进行了此操作:

但是,这种方法的问题在于,如果当前密码不正确,它会丢弃对用户模型的所有更改。如果当前密码不正确,我想保存对用户模型的所有更改,但不保存密码更改。我试过像这样拆分 IF 语句:

这不起作用,因为即使当前密码不正确,用户也可以更改他/她的密码。单步执行代码时,虽然“当前密码不正确”。错误添加到@user,通过该update_attributes方法运行后,似乎忽略了此错误消息。

顺便说一句,该current_password字段是我的用户模型中的虚拟属性:

几个小时以来,我一直试图解决这个问题,所以我真的可以使用一些帮助。

谢谢!


解决方案

感谢papirtiger,我得到了这个工作。我从他的回答中稍微更改了代码。下面是我的代码。请注意,任何一个代码片段都可以正常工作。

在用户模型中(user.rb)

我的用户控制器中的代码现在很简单:

0 投票
1 回答
128 浏览

forms - 以不同的形式但在同一视图中更新用户密码和电子邮件

我的目标是创建一个个人资料页面,(登录的)用户可以选择更新他们的电子邮件或密码(以不同的形式,因此不能同时更新),而无需离开该页面。

更新一个人的电子邮件就像输入他们的新电子邮件并点击“保存更改”提交按钮一样简单。

更新一个人的密码需要用户输入他们的旧密码,他们的新密码,并确认他们的新密码,然后点击“更新密码”按钮。问题一定出在 update_pwd 方法中。

users_controller.rb

编辑.html.erb

路线.rb

现在,我已经能够让电子邮件更新按需要工作(使用必要的错误消息/验证等),但是只要单击更新密码按钮,视图就会呈现,但没有任何反应。相反,似乎正在调用 update_email 函数:

用户.rb

application_controller.rb

错误日志(如上所示)

0 投票
0 回答
1040 浏览

ruby-on-rails-4.2 - 在rails 4.2上的ruby上使用哈希和盐更改密码bcrypt

我正在尝试使用 gem bcrypt 和 hash-salt 方法更改用户密码。

这是我的代码,其中包含我更改密码的尝试,但它给了我一个缺少模板的错误。

用户控制器

用户模型

还有,路线

最后但同样重要的是形式

0 投票
1 回答
1165 浏览

ruby-on-rails - 使用 bcrypt 进行身份验证以更改密码

好吧,我在更改他/她的密码时遇到了验证用户的问题,我得到了邮件和密码并运行了self.authenticate,但它一直返回我 nil

我使用与登录时相同的格式。这是代码

用户控制器.rb

用户.rb

形式

我只是想弄清楚为什么它一直给我返回 nil 以及如何成功更改密码。

0 投票
1 回答
1012 浏览

ruby-on-rails - Rails:通过设计进行远程身份验证

假设我通过我的 rails 应用程序中的设计(使用默认bcrypt加密器)获得了默认用户授权。

当用户可以使用 rails 应用程序密码登录时,我正在尝试制作类似 gui 应用程序的东西。但我不想通过 ajax 将我的密码发送给用户应用程序(在我看来这是不安全的)。远程身份验证是否有任何常用方法来设计使用哈希?

0 投票
2 回答
2187 浏览

ruby-on-rails - 安装 bcrypt 3.1.7 时出错,捆绑程序无法继续

我正在使用 ruby​​stack2.2.0。当我为使用 bcrypt 的新项目运行 bundle install 时,出现此错误:

使用本机扩展安装 bcrypt 3.1.7

这是详细的输出