[PHP-users 709] Re: IDとパスワードの認証

Series php-users@php.gr.jp
Fri, 13 Jul 2001 18:11:26 +0900


いつもお世話になっておりますシリーズです

PHP4.0.6で試した結果です。
PHPで使う暗号関数mcryptとmhashライブラリを使うと良いと思います。
---
mcrypt
http://mcrypt.hellug.gr
download
ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/mcrypt-2.5.7.tar.gz

mhash
http://mhash.sourceforge.net
download
http://mhash.sourceforge.net/dl/
---
mcryptとmhashを使うには、それぞれをシステムにインストールしたあとに
PHPをコンパイルしなおす必要があります。
ひつようなコンパイルオプションは
--with-mcrypt=DIR --with-mhash--DIR
となります。例:--with-mcrypt=/usr/local/lib --with-mhash=/usr/local/lib 

----
うまくインストールできた場合は下記のスクリプトが動作すると思います。


<?php
//ECBモードで暗号化
$iv = mcrypt_create_iv (mcrypt_get_iv_size (MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND);
$key = "This is a very secret key";
$text = "Meet me at 11 o'clock behind the monument.";
echo strlen ($text)."\n";
echo $text."\n";

$crypttext = mcrypt_encrypt (MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
//暗号化されたデータはバイナリなので、BASE64でテキストに変換する
$encoded = base64_encode($crypttext);
echo strlen ($crypttext)."\n";

// BASE64に変換したデータを表示
echo $encoded."\n\n";

// 暗号復元
$decoded = base64_decode($encoded);
$decrypttext = mcrypt_decrypt (MCRYPT_RIJNDAEL_256, $key, $decoded, MCRYPT_MODE_ECB, $iv);

print $decrypttext."\n";
?>

----
暗号化したデータを復元しなくてよいならcrypt関数を使うほうが手軽だと思い
ます。


関連URL: 暗号に関する情報源:
http://www.counterpane.com/labs.html