2007年10月29日月曜日

MySQLの関数で暗号化と復号化

スズキです。

以前、表記をOracleで行う方法を書きました。
http://suz-lab.blogspot.com/2007/06/dbmsobfuscationtoolkitoracle.html

そのMySQL版です。(こちらの方が簡単です)
といっても、下記によくまとめられています。
http://www.ironhearts.com/diary/archives/001255.html

▼暗号化&HEX(文字列で扱えるように)
SELECT HEX(AES_ENCRYPT(USER_ID,'hoge'))
FROM USER

▼上記文字列を用いて検索(復号化)
SELECT USER_ID as userId
FROM USER
WHERE USER_ID = AES_DECRYPT(
  UNHEX(/*page.encryptedUserId*/'96EB3F0109C8A3FD7B9E3C5EE705F497'),
  'hoge'
)

これなら、違う言語を使っても、DBで同じように、
暗号/復号処理できます。(直接DBを扱う場合も便利です)

--
blog: http://suz-lab.blogspot.com/

0 コメント: