问题标签 [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.
ruby-on-rails - NameError Exception: uninitialized constant BCrypt Rails 5, Windows
I am using Devise
with Rails 5
on Windows
. I know about the problem with Windows
and BCrypt
and I am following the instructions from internet to make it work:
- uninstall all bcrypt gem versions with
gem uninstall bcrypt
and select option 3 (if exist); gem uninstall bcrypt-ruby
and select option 3 (if exist);- install bcrypt using
gem install bcrypt --platform=ruby
; - add this line
gem 'bcrypt', platforms: :ruby
to Gemfile.
And I thinks it works, because Devise
depends on BCrypt
and Devise
works fine.
The problem is when I use Byebug
and use in the console BCrypt
, I am getting an error:
NameError Exception: uninitialized constant users::PasswordsController::BCrypt
This is where it is byebug
:
It is in the controller which inherits from Devise::PasswordsController
and it just show the view.
For the example, if I type: BCrypt::Engine.generate_salt
, I am getting that error.
ruby - 使用 BCrypt 进行密码验证
我正在尝试使用 BCrypt 构建一个非常简单的登录页面,其中包含用户名和密码身份验证。
有两个功能,第一个是创建用户名和密码,第二个是使用登录页面进行身份验证。(创建一个新用户,使用该用户登录)
下面是用于创建用户名和密码的控制器和用户模型代码。视图模型不包括在内,但它包括一个简单的表单,要求用户创建用户名、密码和确认密码
控制器:
模型:
在上面,创建了一个新实例来传递用户名和密码。如果密码和确认密码匹配,密码方法将创建一个加密密码,插入方法将使用简单的 SQL 命令将用户名和加密密码插入数据库。
将用户名和加密密码插入数据库后。我想使用登录页面进行验证。我创建了一个新的 User 实例,将用户名和密码参数传递给如下所示的身份验证方法。该方法将查找与 params 用户名对应的密码,并根据加密密码评估 params 密码。
下面是登录的控制器和用户模型
控制器:
模型:
上面,我试图从 SQL 中检索加密的密码(字符串格式),转换为 Bcrypt 对象并针对它验证密码。理论上,假设输入的密码正确,该方法应该返回 true,但它返回 false。
问题可能是什么?
ruby-on-rails - 使用 Rails 的 bcrypt LoadError
我无法找到解决此问题的方法,并且尝试了许多其他人遇到的修复,但均未成功。我正在研究 Michael Hartl 的 Ruby on Rails 5 教程,它需要使用 bcrypt 来实现该has_secure_password
功能。当我运行测试时,我收到一条很长的错误消息,开头为:
我尝试卸载并重新安装 bcrypt,并--platform=ruby
在最后添加并在 gemfile 中包含各种版本;gem 'bcrypt', '~> 3.1.7'
, 'bcrypt', '3.1.11', platforms: [:ruby, :x64_mingw]
,'bcrypt', '~> 3.1.7', platforms: [:ruby]
包括从命令行安装 gem 文件的各种组合。从控制台安装时保留 gemfile 散列,仅使用 gemfile 链接卸载和运行捆绑安装。
这是我在尝试访问 Rails 控制台时收到的完整错误消息:
我正在使用 Ruby 2.3.3 版和在 Windows 7x64 上运行的 Rails 5.1.4 版。
在这一点上任何人都可以提供给我的任何见解将不胜感激。
更新
因此,经过无数小时尝试解决问题后,使用 gemfile:
是什么为我解决了这个问题。这可能不是一个永久的解决方案,但至少它让我继续前进!
ruby-on-rails - Ruby on Rails Devise Gem -> Devise::RegistrationsController#create 中的 LoadError
有人可以帮助我。
使用 Devise Gem 并按照说明进行操作 @ https://github.com/plataformatec/devise
见图片。当我注册时,我收到此错误。设计中的 LoadError::RegistrationsController#create
ruby-on-rails - 无法弄清楚如何让“bcrypt”在 ruby on rails 中工作(WIN 10)
我几乎放弃了,在尝试了无数解决方案之后,直到现在对我来说没有任何效果。我在 Windows 10 64 位上运行 Ruby 2.3.3 和 rails 4.2.8 我已经使用 Rails Installer 安装了 Ruby、Rails 和 DevKit。我安装了 bcrypt v 3.1.7(以避免兼容性问题)
宝石列表 bcrypt
*当地宝石*
bcrypt (3.1.7 x86-mingw32)
我运行 rake db:migrate (我有一些种子)并得到这个 -
我已经尝试了很多解决方案。最流行的是卸载 bcrypt 并以这种方式安装 bcrypt - “gem install bcrypt --platform=ruby” 但是当我尝试这样做时,我收到了这个错误 -
我还尝试导航到安装和运行 gem 的文件夹 -
红宝石 extconf.rb
但这给了我一堆错误,基本上是说“你需要先安装开发工具”但是 RailsInstaller 已经安装了 Devkit。即使在我导航到 Devkit 文件夹并运行以下命令后,我也会收到错误 -
所以我将我的 Ruby 根目录添加到 config.yml - C:\RailsInstaller\Ruby2.3.3 并得到以下错误 -
这让我相信 DevKit 工具已经安装,但是当我运行 ruby extconf.rb 时我仍然收到一个错误,说需要安装它们
我只想让 bcrypt 在我的机器上运行,有什么想法可以做吗?
ruby-on-rails - Rails 5:Gem bcrypt - 抛出错误“无法加载此类文件 - bcrypt”
我是 Rails 初学者。当我尝试使用 gem bcrypt 时,我在屏幕上看到一个错误“无法加载此类文件 - bcrypt”控件卡在模型的“has_secure_password”行。
服务器日志
宝石文件
我已经使用上述两种宝石一次执行一个。即使查看了许多博客和网站,我也找不到解决方案。
我可以毫无问题地启动我的 Rails 服务器,但无法在浏览器中打开我的视图。
有人可以帮忙吗。
ruby-on-rails - 为什么 BCrypt 不再接受哈希?
上周我将 Fedora 升级到全新的 28 版本,它附带了 mongodb 升级到 3.6。请参阅升级到 Fedora 28 后如何修复 mongodb 服务?我如何设法解决我的第一个问题,即 mongod 将不再启动。现在我在使用同一个数据库的 Rails 应用程序上面临另一个问题。
这很可能与 mongodb 升级无关,但我认为提供该上下文可能值得,并且不要因为没有提供足够的上下文而错过解决方案。
因此,由于系统升级,此 Rails 项目上的任何登录尝试都会失败并出现错误,在初始化BCrypt::Errors::InvalidHash in Devise::SessionsController#create
时引发' `。bcrypt (3.1.11) lib/bcrypt/password.rb:60:in
在项目的 Rails 控制台中进一步分析,似乎对该方法的任何调用都会失败:
我尝试bundle
卸载/重新安装bcrypt
,甚至使用 bcrypt gem 的 github 存储库版本,但它没有改变任何东西。
查看/home/psychoslave/.rbenv/versions/2.4.3/lib/ruby/gems/2.4.0/gems/bcrypt-3.1.11/lib/bcrypt/password.rb:60:in
初始化'`,问题似乎是哈希无效。
对应的测试如下:
哈希本身是通过创建的BCrypt::Engine.hash_secret(secret, BCrypt::Engine.generate_salt(cost))
,在我使用的平台中调用 call __bc_crypt(secret.to_s, salt)
,它似乎在调用bcrypt-3.1.11/ext/mri/bcrypt_ext.c。
更重要的是binding.pry
,在valid_hash?
方法中添加 a ,可以看到调用返回的哈希值是什么BCrypt::Password.create('TestPassword')
,它实际上是一个相当长的字符串,它的开头似乎很常见,但最终得到的最有可能是错误生成的序列:
如果可能有任何兴趣,我可以提供整个哈希的转储(大约 32Ko!)。
ruby-on-rails - 在 Ubuntu 16.04 上安装 bcrypt (gcc: 错误:)
什么地方出了错?尝试gem install bcrypt
, gem install bcrypt-ruby
, 并得到相同的结果。由于此错误,无法在 ruby on rails 中进行捆绑安装。
ruby-on-rails - 加载错误:bcrypt
我使用 ROR 平台创建了一个管理面板。现在每当我尝试登录时,我都会收到此错误:
无法加载此类文件 bcrypt_ext
我过去曾遇到过此错误,但曾经通过使用以下步骤卸载并重新安装它来纠正它:
- 关闭所有 Rails 服务器
- 卸载所有版本的 bcrypt
- 手动安装 v3.1.1 (gem install bcrypt --platform=ruby)
- 更新项目的gem文件
但这一次没有任何效果。我提到了很多链接,但没有一个帮助。
我正在使用 Windows 10、Rails 5.1.6 和 Ruby 2.3.3。
我已经使用 devise gem 进行登录功能,我的用户模型看起来像这样
管理员控制器
ruby-on-rails - Brcrypt 验证方法不适用于已经 brcypt 值
我有一个使用 brcypt gem 加密的用户模型。
但是,当我使用以下代码时,它会返回 false 作为结果。
但下面提到的命令工作正常:
它返回真。
那么当我需要验证已经存储在数据库中的密码时,如何实现第一个条件。
任何帮助,将不胜感激!!