Railsでデータベースの値を暗号化

2021.04.16 Ruby

attr_encrypted を使ってデータベースの特定カラムを暗号化する方法をまとめます。Gemfileへの追記、マイグレーション、モデルでの設定、データ登録の例を記載します。

attr_encrypted

データベースの特定のカラムを暗号化することができます。使用するにはGemfileに gem 'attr_encrypted' を追記します。

モデル作成

暗号化するtokenカラムを作りたい場合は encrypted_token カラムと encrypted_token_iv カラムが必要になります。マイグレーションで create_table にこれらを追加します。

モデルファイルに設定を記載

モデルに attr_encrypted :token, key: :encrypt_key と記載し、encrypt_key メソッドで .env か Settings から参照するようにすると良いです。

データを登録

user.token = 'token' で保存すると、user.token で復号された値が取得でき、user.encrypted_token でDBに保存されている暗号化されたデータが確認できます。

システム開発に興味をお持ちの方は、お気軽にご相談ください。初回のご相談は無料です。

相談する

ブログ一覧へ