Railsアプリケーションでフィールドレベルの暗号化にattr_encrypted gemを使用することを検討しています。この宝石で使用する暗号鍵を生成するにはどうすればよいですか?attr_encryptedで使用する暗号鍵の生成方法
secret_key = Digest::SHA256.hexdigest('a secret key')
encrypted_value = Encryptor.encrypt('some string to encrypt', :key => secret_key)
私はa secret key
は任意のことができることを推測する:|:
更新(基本的な使い方下)attr_encryptedで使用される基本的な暗号化であるEncryptorため
ドキュメント、次のように述べて長さがランダムな文字列で、hexdigest
を呼び出すと、そこから適切な固定長の文字列が計算されます。これをお勧めする方法ですか?
私は答えようとしましたが、質問があります。誰(またはどのようなシナリオ)で平文データを秘密にしていますか? –
オフサイトバックアップの目的(オフサイトバックアップシステムでは暗号化キーにアクセスできない場合)のために、データベース内の特定のフィールドを安心して暗号化する必要があります。 –
その場合、オフサイトシステムはデータにアクセスできますが、構成やソースコードにはアクセスしていないと思いますか?おそらくキーの少なくとも一部を格納する設定にはまだ間違いがあり、それを供給する方法として正しいキーを取得するメソッドを呼び出すという宝石の能力を使用します。しかし、ソースコードがバックアップデータフィールドあたりの暗号化キーのハードコーディングも実行可能です。 –