DESで塩が甘すぎる件について
よくありがちな、.htpasswdをPHPで生成するための下記のコード。結構普通に落ちてるサンプル。
これ、最初OKかと思ってたけど全然いかんだろ・・・・。
なにがいかんのかと言うと、
http://jp.php.net/crypt
にも書いてあるんだけどね。
echo 'Standard DES: ' . crypt('rasmuslerdorf', 'rl') . "\n";
こう書くと
Standard DES: rl.3StKT.4T8M
こう出力されるわけですよ。
うん、そう。saltのrlどうよ・・・・・wそのまま付加されてるわけだ。
いやさ、だから最初の例だと$passwordの最初の2文字を暗号化後の頭に付加してる。
クラッカー大喜び、猫フリスキー・・・・・・。
ありえん!パスワードのヒント与えてるじゃん。
だから、最低限このぐらいやる必要あるよな・・・・。
下記のページが大変参考になる。ピンク色ですが、内容は素晴らしいw
cryptの使い方 - Magical Diary, beta version
http://diary.asuka.net/20070718
#ネットに落ちてるサンプルコピペってばかりいると猿になってしまう・・・・
これ、最初OKかと思ってたけど全然いかんだろ・・・・。
if (isset($_POST['password'])) {
$password = $_POST['password'];
$salt = substr($password, 0, 2);
echo crypt($password, $salt);
}なにがいかんのかと言うと、
http://jp.php.net/crypt
にも書いてあるんだけどね。
echo 'Standard DES: ' . crypt('rasmuslerdorf', 'rl') . "\n";
こう書くと
Standard DES: rl.3StKT.4T8M
こう出力されるわけですよ。
うん、そう。saltのrlどうよ・・・・・wそのまま付加されてるわけだ。
いやさ、だから最初の例だと$passwordの最初の2文字を暗号化後の頭に付加してる。
クラッカー大喜び、猫フリスキー・・・・・・。
ありえん!パスワードのヒント与えてるじゃん。
だから、最低限このぐらいやる必要あるよな・・・・。
$password = $_POST['password'];
$clist = "abcdefghijklmnopqrstuvwxyz"
."ABCDEFGHIJKLMNOPQRSTUVWXYZ"
."0123456789_";
mt_srand();
$salt = $clist{mt_rand(0, strlen($clist) - 1)}
.$clist{mt_rand(0, strlen($clist) - 1)};
echo crypt($password, $salt);
下記のページが大変参考になる。ピンク色ですが、内容は素晴らしいw
cryptの使い方 - Magical Diary, beta version
http://diary.asuka.net/20070718
#ネットに落ちてるサンプルコピペってばかりいると猿になってしまう・・・・



Comments
No comments yet
Add Comment