DES_ENCRYPT( 暗号化する文字列 ) DES_ENCRYPT( 暗号化する文字列, キー番号 ) DES_ENCRYPT( 暗号化する文字列, キー文字列 )
DES_ENCRYPT関数を使用することで、文字列をトリプルDESで暗号化することができます。
■注意■
このDES_ENCRYPT関数を使用するためにはMySQLのSSL機能を有効にする必要があります。
しかし私が使用している環境ではSSL機能が有効ではないため、当関数の機能の検証は行っていません。
そのため、この記事は参考程度の情報として読んでください。
尚MySQL4.0.2以降では、トリプルDESより暗号の安全性が高く、かつSSL機能が無効でも使用できる暗号化関数としてAES_ENCRYPT関数とAES_DECRYPT関数があります。
キー番号 キー文字列 キー番号 キー文字列キー番号は半角数字の0-9の間で指定する必要があります。
mysql> -- MySQLサーバの状態を確認。SSL機能は無効(Not in use)。 mysql> status -------------- mysql Ver 14.7 Distrib 4.1.19, for Win32 (ia32) Connection id: 1 Current database: Current user: root@localhost SSL: Not in use Using delimiter: ; Server version: 4.1.19-community-nt Protocol version: 10 Connection: localhost via TCP/IP Server characterset: sjis Db characterset: sjis Client characterset: latin1 Conn. characterset: latin1 TCP port: 3306 Uptime: 27 min 30 sec Threads: 1 Questions: 3 Slow queries: 0 Opens: 11 Flush tables: 1 Open tables: 5 Queries per second avg: 0.002 -------------- mysql> -- SSL機能が向こうであるためDES_ENCRYPT関数は機能しない mysql> SELECT DES_ENCRYPT( '1234567890123456', '1234567890123456' ); +-------------------------------------------------------+ | DES_ENCRYPT( '1234567890123456', '1234567890123456' ) | +-------------------------------------------------------+ | NULL | +-------------------------------------------------------+ 1 row in set, 1 warning (0.01 sec)
DATABASE | 接続中のデータベースを確認する |
DATE | 日時から日付を取り出す |
DAY | 年月日から日を取り出す |
DAYOFMONTH | 年月日から日を取り出す |
DAYOFWEEK | 日付の曜日を調べる |
DAYOFYEAR | 日付がその年の1月1日から何日目かを調べる |
DECODE | 復号化パスワードを指定して復号化する |
DEGREES | ラジアンを度に変換する |
DES_DECRYPT | トリプルDESで復号化する |
DES_ENCRYPT | トリプルDESで暗号化する |