MySQL関数リファレンス

Unix、Linuxのcrypt()を使用して暗号化する (ENCRYPT)

スポンサードリンク
書式
ENCRYPT( 暗号化する文字列 )
ENCRYPT( 暗号化する文字列, SALT値 )

ENCRYPT関数を使用することで、crypt()を使用して暗号化することができます。
SALT値はMySQL3.22.16以降は2文字以上で指定できます。(それより前のバージョンは2文字固定)
SALT値を変更することで、同じ文字列の暗号化でも異なる暗号化文字列を生成することができます。
この暗号化方式は一方向の暗号化であり、復号して元の文字列に戻すことはできません。
また、Windowsなどcrypt()をサポートしないOSで使用した場合はNULLを返します。

例1(Linux+MySQL4.0.27で実行した場合)
mysql> SELECT ENCRYPT( 'angoukasurumojiretsu' );
+-----------------------------------+
| ENCRYPT( 'angoukasurumojiretsu' ) |
+-----------------------------------+
| 1U7Q1a19uka0o                     |
+-----------------------------------+
1 row in set (0.00 sec)

mysql> SELECT ENCRYPT( 'angoukasurumojiretsu', 'sa' );
+-----------------------------------------+
| ENCRYPT( 'angoukasurumojiretsu', 'sa' ) |
+-----------------------------------------+
| sa4R6flZURPos                           |
+-----------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT ENCRYPT( 'angoukasurumojiretsu', 'sb' );
+-----------------------------------------+
| ENCRYPT( 'angoukasurumojiretsu', 'sb' ) |
+-----------------------------------------+
| sbZB6CKDvCw2M                           |
+-----------------------------------------+
1 row in set (0.00 sec)

mysql> -- SALTは1文字だとエラー
mysql> SELECT ENCRYPT( 'angoukasurumojiretsu', 's' );
+----------------------------------------+
| ENCRYPT( 'angoukasurumojiretsu', 's' ) |
+----------------------------------------+
| NULL                                   |
+----------------------------------------+
1 row in set (0.00 sec)
例2(Windows XP+MySQL4.1.19で実行した場合)
mysql> SELECT ENCRYPT( 'angoukasurumojiretsu', 'sa' );
+-----------------------------------------+
| ENCRYPT( 'angoukasurumojiretsu', 'sa' ) |
+-----------------------------------------+
| NULL                                    |
+-----------------------------------------+
1 row in set (0.00 sec)

OSに依存しない一方向の暗号化としてはMD5関数やSHA1関数があり、これらの関数の利用が推奨されています。

スポンサードリンク
Eではじまる MySQL の関数 / 暗号化関数

暗号化関数

スポンサードリンク

Eではじまる MySQL の関数

ENCODE 復号化パスワードを指定して暗号化する
ENCRYPT Unix、Linuxのcrypt()を使用して暗号化する