問題タブ [attr-encrypted]

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 に答える
182 参照

ruby-on-rails - gemattr_encryptedはrails2.3.8+ bundlerでは機能しませんか?

したがって、このgemをconfig.gemメソッドで使用すると、2のenvironment.rbファイルがレールされ、すべて問題ありません。暗号化された属性を保存して読み取ることができます。

しかし、bundler(推奨される方法= D)を使用すると、attr_encryptedが突然、暗号化された属性をデータベースに対して読み書きできなくなります。コンソール/ログ/ウェブページのどこにもエラーはありません。

何か案は?

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

ruby-on-rails - attr_encrypted が仮想属性を暗号化キーに使用する前に、仮想属性が設定されていません

encryption_keyが呼び出されattr_encryptedたときが:passphrase設定されていません。暗号化キーは、salt の sha1 ハッシュになります。パスフレーズとソルトの sha1 ハッシュにする必要があります。

ソルトは作成時に生成され、データベースに保存されます。

:passphrase暗号化キーで仮想属性を使用するにはどうすればよいですか?

助言がありますか?

簡潔にするために、一連のコードを省略しました。

前もって感謝します!

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

ruby-on-rails-3 - attr_encrypted (attr_encryptor) gem 使用時の MassAssignmentSecurity エラー

Rails 3.2.3 アプリでは、attr_encrypted の danpal によるフォークである attr_encryptor を使用しています。hereの指示に従っていますが、新しいPatientレコードを作成しようとすると、次のエラー メッセージが表示されます。

指示が示すように、暗号化されていない対応する列を削除しながら、、、および列をテーブルencrypted_#{field}encrypted_#{field}_salt追加encrypted_#{field}_ivしました。Patients

Patientモデルは次のようになります。

コントローラーのメソッドは次のようになりcreateます。Patient

私は何を間違っていますか?助けてくれてありがとう!

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

ruby-on-rails - attr_encryptor 不正な復号化エラー

danpal/attr_encryptor gem を使用して、ActiveRecord モデルの一部の属性を暗号化しました。

次のエラーが発生しました

次に、Rails コンソールで encrypt_number を使用しようとしましたが、コンソールを再起動したときに、同じ値の 'number' フィールドに対して異なる値が表示されました。なんで?

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

ruby-on-rails - Rails暗号化:danpal/attr_encryptorキーの生成

attr_encryptedのダンパルフォークを使用します。

'key'文字列は新しいセッションで新しいオブジェクトを生成しますか?暗号化された値でインスタンスを作成したときに問題が発生したため、正常に動作します。ただし、新しいRailsコンソールセッションを実行したり、たとえばビューから値にアクセスしようとすると、bad decryptエラーが発生します。キーが間違っていることに関係していると思いますか?新しいセッションのように、キーとして別の文字列オブジェクトを渡しますか?

これを回避する方法はありますか?

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

ruby-on-rails - データベース内の暗号化された要素に対してワイルドカード検索を実行するにはどうすればよいですか

モデル フィールドの一部を暗号化するために attr_encrypted を使用しています。全文検索には、Tire と Elasticsearch を使用しています。私は単純な検索フォームを使用しています。ここに私のモデルの一部があります:

たとえば、データベースに「John」という名前がある場合、「John」を検索すると、データベースにクエリを実行する前にクエリが暗号化され (Student.encrypt_name(params[:search]))、結果が返されます。 . Elasticsearch ではワイルドカード検索が可能です。たとえば、"Joh*" を検索すると、一致した結果が返されますが、暗号化されたキーワード "Joh" は暗号化された "John" とは異なり、db は結果を返しません。これに関する解決策をいただければ幸いです。

よろしく、 ラドスラフ

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

java - Javaからattr_encryptedプリペイドカードを復号化しようとしています

モデルの1つで2つのフィールドを(attr_encryptedで)暗号化するRailsアプリケーションがあります。

Webアプリケーションではない私のプロセスの別の部分は、このデータ(プレーンテキスト)を使用していくつかのタスクを実行する必要があります。

DBから保存された値を読み取って復号化しようとしていますが、できません。

私のモデルは次のようになります。

DBフィールド(encrypted_data1とencrypted_data2)はデータでいっぱいですが、base64(attr_encryptedはデフォルトでそれを行います)と復号化(コマンドラインからopensslを使用してJavaを使用してみました)をデコードしようとすると、「不正なマジックナンバー」(openssl)が表示されますまたはキーの長さに関するさまざまなエラー(Javaの場合)。私はそれらの文字列を復号化するのに多くの時間を費やしましたが、方法を見つけることができませんでした。

これが私が持っているすべてのデータです:
暗号化された+ base64文字列(data1とdata2用)は次のとおりです:

両方からbase64をデコードして、バイト配列を取得できます。私が試してみると:

「悪いマジックナンバー」

次のJavaコードを試してみると:

「java.security.InvalidKeyException:無効なAESキーの長さ:14バイト」が表示さ
れます。Javaコードのさまざまなバリエーションを試したので、この特定のバリエーションは完全な間違いである可能性があります。

私がルビーで試してみると:

正しい値が復号化されます(ご覧のとおり)。

また、Javaで同じ文字列を暗号化し、Base64でエンコードしようとすると、より長い文字列(base64の後)が得られることにも気づきました。理由はわかりませんが、おそらく関連しています。

暗号化された値を持つsalt/ivも必要だと思いましたが、どこにも保存されていません。同じ値を2回暗号化しようとしましたが、同じ出力文字列を取得したため、ランダムではありません。

attr_encrypted(rubyのEncryptorを使用)がデータを暗号化する方法と、データを外部で復号化する方法を知っている人はいますか?

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

devise - Devise トークンを暗号化する

トークン認証でDeviseを使用していますが、データベースでトークンを暗号化したいと考えています。DBからのトークンの保存/取得を工夫するヒントを誰か教えてもらえますか?

私はattr_encrypted gem も使用しています。これを使用すると、適切な場所が見つかったら暗号化全体がかなり簡単になります。

編集:

ここで説明されているようにトークン認証を実装しました: http://zyphdesignco.com/blog/simple-auth-token-example-with-devise

ユーザーモデルに次の行を追加しました。これにより、authentication_token が暗号化されます。

実行してログインしようとすると、次のエラー メッセージが表示されます。

devise と attr_encrypted との競合があり、両方が authentication_token メソッドの再定義をめぐって争っているようです (ヒント @sbfaulkner の thx)

誰かが同様の問題を抱えていて、解決策を知っているのではないでしょうか?

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

ruby-on-rails - Rails 4 でフォーム表示の SSN を編集しますか?

Rails 4 アプリケーションがあり、attr_encryptedgem を使用して SSN を暗号化された形式で DB に保存しています。

私がやろうとしているのは、フォームの編集/表示時に最後の 4 桁のみを表示することです。そのため、基本的に SSN が保存されると、ユーザーはフォームで完全な SSN を見ることができなくなります。だから私は次のことをやってみました、

私が見ているのは、を使用するショーフォームで、<%= @payment_data.ssn %>正常に動作することです。しかし、を使用している私の編集フォームでは<%= f.input :ssn %>、編集フィールドに完全な SSN が事前入力されています。

注:simple_formフォームに gem を使用していますが、基本的な<%= f.text_field :ssn %>構文を使用すると、同じ完全な SSN が表示されます。

ここで何が間違っていますか?