お知らせ
2023.12.5(Tue)
目次
こんにちは。池島です。
個人情報保護の観点から、システム開発でデータを保持する際マスキングを利用することがあります。今回はMySQLでのマスキング方法として、AESを利用した暗号化と複合化の方法をご紹介します。
今回検証を行ったMySQLのバージョンは以下の通りです。
Advanced Encryption Standard (AES) は、アメリカが2001年に標準暗号として定めた共通鍵暗号アルゴリズムである。アメリカ国立標準技術研究所(NIST)が公募し、Rijndael(ラインダール)がAESとして採用された。
つまり、広く使われている共通鍵形式の暗号化方式になります。
暗号化には以下の関数を利用します。
AES_ENCRYPT(str, key_str)
INSERT INTO crypt_test(str_val, crypt_str) VALUES ('TEST', AES_ENCRYPT('TEST', 'password'));
str_val(varchar) | crypt_str(varbinary) |
---|---|
TEST | 445DB609313D32C61C3FE6132DD6F2CC |
crypt_strに暗号化された値が挿入されています。
複合化には以下の関数を利用します。
AES_DECRYPT(crypt_str, key_str)
SELECT str_val , crypt_str , CAST(AES_DECRYPT(crypt_str, 'password') AS CHAR) decrypt_str FROM crypt_test
str_val | crypt_str | decrypt_str |
---|---|---|
TEST | 445DB609313D32C61C3FE6132DD6F2CC | TEST |
無事暗号化されていたcrypt_strが複合化されましたね。
いかがでしたでしょうか。
暗号化されたデータを利用するシステムにおいて、暗号化の知識は実装やデータ確認をする際に必要になることがあります。参考にしていただけると幸いです。
ではまた!
《関連記事》