15

最も基本的なセットアップの使用:

class User < ActiveRecord::Base
  attr_encrypted :name, 
                 key: 'This is a key that is 256 bits!!', 
                 encode: true, 
                 encode_iv: true, 
                 encode_salt: true
end

同じ名前を指定すると、データベースでの結果は次のようになります。

╔════╦══════════════════════════════╦═══════════════════╗
║ id ║ encrypted_name               ║ encrypted_name_iv ║
╠════╬══════════════════════════════╬═══════════════════╣
║ 1  ║ aVXZb1b317nroumXVBdV9pGxA2o= ║ JyE7wHups+3upY5e  ║
║ 2  ║ aVXZb1b317nroumXVBdV9pGxA2o= ║ uz/ktrtbUAksg5Vp  ║
╚════╩══════════════════════════════╩═══════════════════╝

暗号文が同一なのはなぜですか? それはgemがデフォルトで使っているivのポイントの部分ではないでしょうか?

4

2 に答える 2

0

プレーン テキスト、キー、および IV が同じ場合、暗号化されたテキストは同じになります。

使用する必要があるようです:

attr_encrypted :email, key: 'some secret key', encode: true, encode_iv: true, encode_salt: true

ノート:encode_iv: true

または、おそらくデフォルトのオプションを設定しますencode_iv: true

ドキュメント: attr_encrypted

于 2016-03-14T15:36:27.593 に答える