PHP入門

crypt

エンコード・暗号化関数

DESで暗号化した文字列を取得

= PHPスクリプト動作例

関数例

saltを記述しない(ランダムな値を出力)

echo crypt('1234');
$1$Tu6AFXRa$.y6x6yluRfO0oJbOdUtje1

saltを記述する

echo crypt('1234', 'ab');
abWMpd9uBwR.g

解説

cryptの暗号化は、一方向のアルゴリズムのため複合化できません。

8文字までが暗号化の対象となり、9文字以上では8文字と変わりません。
saltは1~2文字が対象となり、3文字以上では2文字と変わりません。

crypt('A', 'B')'B'(salt)を指定しない場合は、常にランダムな値を出力します。
更新をクリックすると上記の関数例で確認できます。


認証プログラムで、セキュリティの観点からソース内にパスワードを記述したくない場合に使用します。

$crypt = 'abWMpd9uBwR.g'; //パスワードのcrypt値

$pass = $_POST['pass']; //入力されたパスワード

if (crypt($pass, 'ab') == $crypt) {
    echo '認証成功';
}

上記の方法では、下記のようにソース内にパスワード'1234'を記述することなく、認証させることができます。

if ($pass == '1234') { //パスワードを記述する場合
    echo '認証成功';
}

DESで暗号化した文字列を取得 crypt
MD5で暗号化した文字列を取得 md5
SHA1で暗号化した文字列を取得 sha1


PHPJP.comトップ | 更新情報 | ソースコードの利用について | リンク | お問い合わせ

©PHPJP.com