問題タブ [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 - Rails で BCrypt を使用して手動で認証する
Rails アプリで BCrypt を使用して、ユーザーのパスワードを安全に保存しようとしています。暗号化されたパスワードを問題なく保存し、それを元のプレーン テキスト文字列と比較して正常に検証することさえできます。問題は、パスワードを暗号化するたびに異なる出力が得られ (ソルトか何かが原因であると想定しています)、データベースに保存された後に検証が保持されないことです (私は.違いがある場合は sqlite3 データベース)。
例 (Rails コンソール):
has_secure_password のような既製のソリューションがあることは知っていますが、これを手動で実装して、何が起こっているのかを本当に理解したいと思います。
ruby-on-rails - Rails Web サイトの Bcrypt はどの程度スケーラブルですか?
ブルートフォース攻撃の実用性を制限するためにハッシュするとき、Bcryptの要点は時間のかかることであることを私は知っています。しかし、それは本質的にスケーラブルではありませんか? たとえば、私が読んだあるサイトでは、現在のハードウェアでハッシュに 0.25 秒かかるように Bcrypt のコスト ファクターを調整する必要があると主張していました。常に数百人がログインしている適度に成功したサイトがある場合、この 0.25 秒は、すべてのユーザーが数秒待機する可能性があることを意味しますか? サーバーの CPU が 0.25 秒間ハッシュするときに最大になり、リソースの使用率が常に高くなりますか?
二次的な質問として、スケーラブルであると仮定すると (私はそう確信しています)、最近の適切なコスト要因は何ですか?
ruby-on-rails - 「BCrypt::Errors::InvalidHash: 無効なハッシュ」Omniauth ID
Omniauth ID を使用した Rails 4 アプリケーションを使用していますが、本番環境では、一部のユーザー (少数) に対して次のエラーが発生しました。
メソッド hash_valid を使用して、すべての ID password_digest をテストしました。
そして、すべて良いです。
したがって、問題はユーザーが指定したパスワードに起因すると思いますが、どこにあるのかはわかりませんが、開発中にエラーを再現できません。
ログインのフォームは基本的なものです。
任意のアイデア、ありがとう?
ruby-on-rails - BCrypt 認証が機能しない
ユーザーを作成し、その後 BCrypt を使用して認証できる単純な iOS/Rails アプリケーションをセットアップしようとしています。BCrypt の指示に従おうとしましたが、認証プロセスが機能しません。Railsはとても初めてなので、単純なことを台無しにしていると確信しています!
新しいユーザーを作成するには:
users_controller.rb 内
user.rb 内
サーバー上:
2014-08-21 19:32:05 -0500 で 192.168.2.6 の POST "/users.json" を開始しました JSON パラメーターとして UsersController#create で処理: {"username"=>"testtest", "password"=>" [FILTERED]", "user"=>{"username"=>"testtest"}} (0.1ms) トランザクションの開始 User Exists (20.8ms) SELECT 1 AS one FROM "users" WHERE "users"."username" = 'testtest' LIMIT 1string
列の型に挿入されたバイナリ データpassword_hash
SQL (0.8ms) INSERT INTO "users" ("created_at", "password_hash", "updated_at", "username") VALUES (?, ?, ?, ?) [["created_at", "2014-08-22 00 :32:05.960378"]、["password_hash"、"$2a$10$UzLdD7ytQXKRDU5MhAawJuFQ3R4oQlPyXh/V4GehNP692fsSpK6wK"]、["updated_at"、"2014-08-22 00:32:05.960378"]、"テスト"ユーザー名"、"テスト" ]] (1.3ms) commit transaction Rendered users/show.json.jbuilder (0.3ms) Completed 201 Created in 136ms (Views: 31.9ms | ActiveRecord: 23.5ms)
ユーザーを認証します。
sessions_controller.rb 内
user.rb 内
サーバ:
*2014-08-21 19:38:26 -0500 で 192.168.2.6 の POST "/session" を開始しました。SessionsController#create as / パラメーター: {"username"=>"testtest", "password"=>"[ FILTERED]", "session"=>{"username"=>"testtest", "password"=>"[FILTERED]"}} ユーザー負荷 (0.2ms) SELECT "users".* FROM "users" WHERE "users "."username" = 'testtest' LIMIT 1 Rendered sessions/fail.json.jbuilder (0.2ms) Completed 200 OK in 105ms (Views: 23.3ms | ActiveRecord: 0.2ms)*
洞察に感謝します!
ruby-on-rails - bcrypt gem が機能しない
を正常にインストールbcrypt - 3.1.7
し、その後バンドルをインストールしました。
ただし、bcrypt gem がリストに表示されず、show bcrypt をバンドルしようとすると、次のように表示されます。
また、私がするとき:
gem 'bcrypt', '~> 3.1.7'
それは言います:
ERROR: While executing gem.. (Gem::CommandLineError) Unknown command bcrypt
私は何をすべきか?
ruby - Ruby BCrypt パスワード比較で誤った評価が返される
ユーザーのパスワードを安全に保存するために、Sinatra/Ruby アプリケーションで BCrypt を使用しようとしています。
次のコードは、私の User モデルです。
認証メソッドを so: のように呼び出すとUser.authenticate("bar@foo.com", "admin")
、コードは false を返します。ユーザーが存在することは確かです。
編集:
u.password == requested_password
false も返します
メソッドに渡される値が有効で正しい場合でも、なぜこのようなことが起こるのでしょうか?
ruby-on-rails - Openshift は bcrypt をインストールしません
Ruby on Rails アプリを OpenShift にプッシュしようとしていますが、gem ファイル bcrypt で問題が発生しています。ローカルではすべて問題ありませんが、Openshift 側で実行しようとすると、このエラーが発生します。
ロードするファイルはありません -- bcrypt (LoadError) /var/lib/openshift/548f13fce0b8cdf18c000001/app-root/runtime/repo/vendor/bundle/ruby/gems/activesupport-4.1.1/lib/active_support/dependencies.rb: 247: require
require' /var/lib/openshift/548f13fce0b8cdf18c000001/app-root/runtime/repo/vendor/bundle/ruby/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:in
のブロック内' /var/lib/openshift/548f13fce0b8cdf18c000001/app-root/runtime/repo/vendor/bundle/ruby/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:232:require 内load_dependency' /var/lib/openshift/548f13fce0b8cdf18c000001/app-root/runtime/repo/vendor/bundle/ruby/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:in
' /var/lib/openshift/548f13fce0b8cdf18c000001/app-root/runtime/repo/vendor/bundle/ruby/gems/activemodel-4.1.1/lib/active_model/secure_password.rb:49:inhas_secure_password' /var/lib/openshift/548f13fce0b8cdf18c000001/app-root/runtime/repo/app/models/user.rb:13:in
' /var/lib/openshift /548f13fce0b8cdf18c000001/app-root/runtime/repo/app/models/user.rb:1:in<top (required)>' /var/lib/openshift/548f13fce0b8cdf18c000001/app-root/runtime/repo/vendor/bundle/ruby/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:in
require' /var/lib/openshift/548f13fce0b8cdf18c000001/app-root/runtime/repo/vendor/bundle/ruby/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:inblock in require' /var/lib/openshift/548f13fce0b8cdf18c000001/app-root/runtime/repo/vendor/bundle/ruby/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:232:in
load_dependency' /var/lib /openshift/548f13fce0b8cdf18c000001/app-root/runtime/repo/vendor/bundle/ruby/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:inrequire' /var/lib/openshift/548f13fce0b8cdf18c000001/app-root/runtime/repo/vendor/bundle/ruby/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:348:in
require_or_load' /var/lib/openshift/548f13fce0b8cdf18c000001/app -root/runtime/repo/vendor/bundle/ruby/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:307:depend_on' /var/lib/openshift/548f13fce0b8cdf18c000001/app-root/runtime/repo/vendor/bundle/ruby/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:225:in
require_dependency 内' /var/lib/openshift/548f13fce0b8cdf18c000001/app-root/runtime/repo /vendor/bundle/ruby/gems/railties-4.1.1/lib/rails/engine.rb:468:inblock (2 levels) in eager_load!' /var/lib/openshift/548f13fce0b8cdf18c000001/app-root/runtime/repo/vendor/bundle/ruby/gems/railties-4.1.1/lib/rails/engine.rb:467:in
each' /var/lib/openshift/548f13fce0b8cdf18c000001/app-root/runtime/repo/vendor/bundle/ruby/gems/railties-4.1.1/lib/rails/engine.rb:467:inblock in eager_load!' /var/lib/openshift/548f13fce0b8cdf18c000001/app-root/runtime/repo/vendor/bundle/ruby/gems/railties-4.1.1/lib/rails/engine.rb:465:in
each' /var/lib /openshift/548f13fce0b8cdf18c000001/app-root/runtime/repo/vendor/bundle/ruby/gems/railties-4.1.1/lib/rails/engine.rb:465:eager_loadeager_load!' /var/lib/openshift/548f13fce0b8cdf18c000001/app-root/runtime/repo/vendor/bundle/ruby/gems/railties-4.1.1/lib/rails/engine.rb:346:in
で!」/var/lib/openshift/548f13fce0b8cdf18c000001/app-root/runtime/repo/vendor/bundle/ruby/gems/railties-4.1.1/lib/rails/application/finisher.rb:58:ineach' /var/lib/openshift/548f13fce0b8cdf18c000001/app-root/runtime/repo/vendor/bundle/ruby/gems/railties-4.1.1/lib/rails/application/finisher.rb:58:in
block in ' /var/ lib/openshift/548f13fce0b8cdf18c000001/app-root/runtime/repo/vendor/bundle/ruby/gems/railties-4.1.1/lib/rails/initializable.rb:30:instance_exec' /var/lib/openshift/548f13fce0b8cdf18c000001/app-root/runtime/repo/vendor/bundle/ruby/gems/railties-4.1.1/lib/rails/initializable.rb:30:in
実行中' /var/lib/openshift/548f13fce0b8cdf18c000001/ app-root/runtime/repo/vendor/bundle/ruby/gems/railties-4.1.1/lib/rails/initializable.rb:55:inblock in run_initializers' /opt/rh/ruby200/root/usr/share/ruby/tsort.rb:150:in
block in tsort_each' /opt/rh/ruby200/root/usr/share/ruby/tsort.rb:183:inblock (2 levels) in each_strongly_connected_component' /opt/rh/ruby200/root/usr/share/ruby/tsort.rb:219:in
each_strongly_connected_component_from' /opt/rh/ruby200/root/usr/share/ruby/tsort.rb:182:inblock in each_strongly_connected_component' /opt/rh/ruby200/root/usr/share/ruby/tsort.rb:180:in
each' /opt/rh/ruby200/root/usr/share/ruby/tsort.rb:180:ineach_strongly_connected_component' /opt/rh/ruby200/root/usr/share/ruby/tsort.rb:148:in
tsort_each' /var/lib/openshift/548f13fce0b8cdf18c000001/app-root/runtime/repo/vendor/bundle/ruby/gems /railties-4.1.1/lib/rails/initializable.rb:54:run_initializers' /var/lib/openshift/548f13fce0b8cdf18c000001/app-root/runtime/repo/vendor/bundle/ruby/gems/railties-4.1.1/lib/rails/application.rb:288:in
初期化中!」/var/lib/openshift/548f13fce0b8cdf18c000001/app-root/runtime/repo/config/environment.rb:5:require<top (required)>' config.ru:1:in
' config.ru:1:inblock in <main>' /var/lib/openshift/548f13fce0b8cdf18c000001/app-root/runtime/repo/vendor/bundle/ruby/gems/rack-1.5.2/lib/rack/builder.rb:55:in
instance_eval' /var/lib/openshift/548f13fce0b8cdf18c000001/app-root/ runtime/repo/vendor/bundle/ruby/gems/rack-1.5.2/lib/rack/builder.rb:55:ininitialize' config.ru:1:in
new' config.ru:1:in<main>' /opt/rh/ruby200/root/usr/share/gems/gems/passenger-4.0.18/helper-scripts/rack-loader.rb:78:in
eval' /opt/rh/ruby200/root/usr/share/gems/gems/passenger-4.0.18/helper-scripts/rack-loader.rb:78:inload_app' /opt/rh/ruby200/root/usr/share/gems/gems/passenger-4.0.18/helper-scripts/rack-loader.rb:96:in
' /opt/rh/ruby200/root/usr/共有/gems/gems/passenger-4.0.18/helper-scripts/rack-loader.rb:4:in<module:PhusionPassenger>' /opt/rh/ruby200/root/usr/share/gems/gems/passenger-4.0.18/helper-scripts/rack-loader.rb:3:in
'
私の最新の宝石ファイル:
ソース ' https://rubygems.org '
...
gem 'bcrypt'
gem 'bcrypt-ruby'
...
私の Gemfile.lock には、必要なすべての依存関係が含まれています。
知っておくべき重要な事実は、プッシュ変更後の Openshift コンソールは gem ファイル bcrypt および bcrypt-ruby をインストールしないということです。オプトプットをフォローする
remote: Ruby カートリッジを停止
しています remote: 1 つのデプロイメントのリンクを修復しています
remote: 強制的にクリーン ビルドを有効にします - 依存関係をクリーニングします
remote: git ref 'master' をビルドし、cab854c をコミットします
remote: Ruby カートリッジを
ビルドします remote: bundle install --deployment --path ./app -root/repo/vendor/bundle
remote: 注意: 以下を使用して、特定の Gemfile グループのインストールを防ぐことができます: rhc env set
BUNDLE_WITHOUT=groupname
remote: Fetching gem metadata from https://rubygems.org/ ........
remote : rake (10.4.2)
のインストール remote: i18n (0.6.11) の
インストール remote: json (1.8.1)
のインストール remote: minitest (5.5.0) のインストール
remote: thread_safe (0.3.4) の
インストール remote: tzinfo (1.2.2)
のインストール remote: activesupport (4.1.1) の
インストール remote: builder (3.2.2)
のインストール remote: erubis (2.7.0) の
インストール remote: actionview のインストール ( 4.1.1)
リモート: rack (1.5.2)
のインストール リモート: rack-test (0.6.2) の
インストール リモート: actionpack (4.1.1)
のインストール リモート: mime-types (1.25.1) の
インストール リモート: polyglot (0.3 ) のインストール.5)
remote: treetop (1.4.15) の
インストール remote: mail (2.5.4)
のインストール remote: actionmailer (4.1.1) のインストール remote: activemodel (4.1.1) の
インストール
remote: arel (5.0.1.20140414130214) のインストール
remote: activerecord (4.1.1)の
インストール remote: execjs (2.2.2)
のインストール remote: autoprefixer-rails (4.0.2.1) の
インストール remote: sass (3.2.19)
のインストール remote: bootstrap-sass (3.3.1.0) のインストール
remote : bootstrap_form (2.2.0)の
インストール remote: childprocess (0.5.5)
のインストール remote: coffee-script-source (1.8.0) の
インストール remote: coffee-script (2.3.0) の
インストール remote: thor (0.19.1)のインストール
remote: railties (4.1.1)
のインストール remote: coffee-rails (4.0.1) の
インストール remote: ハイク (1.2.3)の
インストール
remote: multi_xml (0.5.5) のインストール remote: httparty (0.13.3) のインストール
remote: multi_json (1.10.1)の
インストール remote: jbuilder (2.2.5)
のインストール remote: jquery-rails (3.1.2) の
インストール remote: mysql2 (0.3.17)のインストール
remote: bundler (1.3.5) の使用
remote: インストールチルト (1.4.1)
リモート: スプロケットのインストール (2.11.0)
リモート: スプロケットレールのインストール (2.2.2)
リモート: レールのインストール (4.1.1)
リモート: rdoc のインストール (4.2.0)
リモート: rubyzip のインストール (0.9 ) .9)
リモート: sass-rails (4.0.5) の
インストール リモート: sdoc (0.4.1)の
インストール リモート: websocket (1.0.7)
のインストール リモート: selenium-webdriver (2.35.1) のインストール
リモート: ターボリンクのインストール (2.5. 3)
リモート: uglifier (2.6.0) の
インストール リモート: validates_cpf_cnpj (0.2.0)のインストール
リモート: フリーズ中に変更されたロックファイルを書き込むことはできません。
remote: バンドルが完成しました!
remote: ./vendor/bundle にインストールされました
remote: httparty からのインストール後のメッセージ:
remote: HTTParty を使用する場合は、ハード パーティーを行う必要があります。
remote: rdoc からのインストール後のメッセージ:
remote: ruby のバージョンによっては、ruby をインストールする必要があるかもしれません rdoc/ri data:
remote:
remote: <= 1.8.6 : unsupported
remote: = 1.8.7 : gem install rdoc -データ; rdoc-data --install
remote: = 1.9.1 : gem install rdoc-data; rdoc-data --install
remote: >= 1.9.2 : 何もする必要はありません! わーい!
remote: デプロイ用のビルドを準備しています
gem ファイルがインストールされていないことがエラーの原因であることは明らかですが、問題はその理由です。
ruby-on-rails - bcrypt gem のインストールに失敗しました
OPからの追加情報で編集: