問題タブ [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 投票する
0 に答える
368 参照

ruby-on-rails - NameError 例外: 初期化されていない定数 BCrypt Rails 5、Windows

on で使用Deviseしています。私は問題について知っており、それを機能させるためにインターネットからの指示に従っています:Rails 5WindowsWindowsBCrypt

  1. すべての bcrypt gem バージョンをアンインストールしgem uninstall bcrypt、オプション 3 (存在する場合) を選択します。
  2. gem uninstall bcrypt-rubyオプション 3 を選択します (存在する場合)。
  3. を使用して bcrypt をインストールしgem install bcrypt --platform=rubyます。
  4. この行gem 'bcrypt', platforms: :rubyを Gemfile に追加します。

Deviseに依存しBCrypt、正常に動作するため、機能すると思いDeviseます。

問題はByebug、コンソールBCryptで使用して使用すると、エラーが発生することです。

NameError 例外: 初期化されていない定数 users::PasswordsController::BCrypt

これがその場所ですbyebug

から継承するコントローラーにありDevise::PasswordsController、ビューを表示するだけです。

たとえば、次のように入力するとBCrypt::Engine.generate_salt、そのエラーが発生します。

0 投票する
1 に答える
280 参照

ruby-on-rails - Rails での bcrypt LoadError

この問題の解決策を見つけるのに苦労しており、他の人が遭遇した多くの修正を試みましたが、成功しませんでした. 私は、has_secure_password機能を実装するために bcrypt を使用する必要がある Michael Hartl による Ruby on Rails 5 チュートリアルに取り組んでいます。テストを実行すると、次のような長いエラー メッセージが表示されます。

--platform=ruby最後に追加し、gemfile にさまざまなバージョンを含めて、bcrypt のアンインストールと再インストールを試みました。gem 'bcrypt', '~> 3.1.7'、コマンド ラインから gem ファイルをインストールするさまざまな組み合わせを含みます'bcrypt', '3.1.11', platforms: [:ruby, :x64_mingw]'bcrypt', '~> 3.1.7', platforms: [:ruby]コンソールからのインストール中に gemfile をハッシュ化したままにして、gemfile リンクのみを使用して Bundle Install をアンインストールおよび実行します。

これは、Rails コンソールにアクセスしようとしたときに表示されるエラー メッセージ全体です。

Windows 7x64 で動作する Rails バージョン 5.1.4 で Ruby バージョン 2.3.3 を使用しています。

この時点で誰かが私に提供できる洞察をいただければ幸いです。

アップデート

そのため、gemfile を使用して問題を解決しようと数え切れないほどの時間を費やした後:

私にとって問題を解決したものでした。これは恒久的な解決策ではないかもしれませんが、少なくとも前に進むことができます!

0 投票する
2 に答える
3732 参照

ruby-on-rails - BCrypt がハッシュを受け入れなくなったのはなぜですか?

先週、Fedora を最新の 28 リリースにアップグレードしました。これには、mongodb の 3.6 へのアップグレードが含まれています。Fedora 28 へのアップグレード後に mongodb サービスを修復する方法を参照してください。mongodが起動しなくなるという最初の問題をどのように解決したかについて。現在、この同じデータベースを使用する Rails アプリケーションで別の問題に直面しています。

これはおそらくmongodbのアップグレードとは関係ありませんが、そのコンテキストを提供する価値があると思い、十分な提供がない場合の解決策を見逃さないでください.

したがって、システムのアップグレードにより、この Rails プロジェクトにログインしようとすると、initialize'`で発生するBCrypt::Errors::InvalidHash in Devise::SessionsController#create エラーで失敗します。bcrypt (3.1.11) lib/bcrypt/password.rb:60:inプロジェクトのRailsコンソールでさらに分析すると、このメソッドへの呼び出しは失敗するようです:

bundleをアンインストール/再インストールしようとしましbcryptたが、代わりに bcrypt gem の github リポジトリ バージョンを使用しましたが、何も変わりませんでした。

initialize'`を見ると/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 を使用して作成され、 bcrypt-3.1.11/ext/mri/bcrypt_ext.c__bc_crypt(secret.to_s, salt)を呼び出しているようです。

さらに重要なことbinding.pryに、valid_hash?メソッドに a を追加すると、 への呼び出しに対して返されたハッシュ値を確認できますBCrypt::Password.create('TestPassword')。実際には、開始が通常のように見えるかなり長い文字列ですが、誤って生成された可能性が最も高いシーケンスで終了します。

興味があれば、ハッシュ全体のダンプを提供できます (約 32Ko!)。

0 投票する
1 に答える
44 参照

ruby-on-rails - 読み込みエラー:bcrypt

ROR プラットフォームを使用して管理パネルを作成しました。ログインしようとするたびに、次のエラーが発生します。

そのようなファイル bcrypt_ext を読み込めません

過去にこのエラーに遭遇しましたが、以下の手順を使用してアンインストールして再インストールすることで修正していました。

  1. すべてのレールサーバーをシャットダウンします
  2. bcrypt のすべてのバージョンをアンインストールする
  3. v3.1.1 を手動でインストール (gem install bcrypt --platform=ruby)
  4. プロジェクトの gem ファイルを更新する

しかし、今回は何も機能しません。多くのリンクを参照しましたが、どれも役に立ちませんでした。

Windows 10、Rails 5.1.6、および Ruby 2.3.3 を使用しています。

ログイン機能にdevise gemを使用しましたが、ユーザーモデルは次のようになります

admin.controller