2023年4月7日金曜日

MySQLで既存レコードを暗号化する方法

MySQLで既存レコードを暗号化する方法

概要

update を aes_encrypt 付きで実行します

環境

  • Ubuntu 18.04
  • MySQL 5.7.41

SQL

user テーブルの user_name というカラムのデータを暗号化します
aes_encrypt で暗号化したいカラムを選択するがポイントです

update user set user_name=hex(aes_encrypt(`user_name`, unhex(sha2('xxx',512))));

動作確認

select cast(aes_decrypt(unhex(user_name), unhex(sha2('xxx',512))) as char character set utf8) from user; 

注意事項

暗号化するとデータ長が大きくなるケースが多いので既存データのサイズを超える場合には alter table しましょう

0 件のコメント:

コメントを投稿