crypt()は、Unix 標準の DES 暗号化手法を使って文字列を暗号化します。引数は暗号化したい 文字列を指定し、オプションで暗号化のベースとなる 2 文字の 'salt' 文字列を指定します。暗号化に関する関数の詳細は Unix man ページを参照してください。
salt引数が指定されない場合、PHPによりランダムに生成されます。
いくつかのオペレーティングシステムは、複数の暗号化方式をサポートしています。 実際、標準のDES暗号化の替わりにMD5に基づく暗号化アルゴリズムが 使用されることが時々あります。暗号化手法は、salt引数により選定されます。 インストール時に、PHPはcrypt関数の機能を定義し、他の暗号化方式用の saltを受付ます。saltが指定されない場合、 システムのデフォルトの暗号化手法がMD5でない限り PHPはデフォルトで標準の2文字DES saltを自動的に生成します。 暗号化手法がMD5の場合、MD5互換のsaltが生成されます。 PHPは、標準の2文字のsaltをシステムに適用するか、 より長い12文字MD5 saltが適用できるかを意味する 定数 CRYPT_SALT_LENGTH を設定します。
標準 DES 暗号化 crypt() は、 出力の最初の2文字をsaltとして使用します。
crypt() 関数が複数の暗号化手法をサポートするシステムにおいては、 指定した型を利用可能であるかにより、次の定数を0又は1に設定します。
CRYPT_STD_DES - 2文字 SALT の標準 DES 暗号
CRYPT_EXT_DES - 9文字の拡張DES暗号
CRYPT_MD5 - $1$ で始まる12文字のSALTを有するMD5暗号
CRYPT_BLOWFISH - $2$ で始まる16文字の拡張DES暗号
crypt() は単方向アルゴリズムを使用している ため、復号化するための関数 (decrypt) はありません。
md5()も参照下さい。