- 締切済み
cryptの使用方法
パスワードなどを暗号化する際に使用するcrypt関数ですが、最適なsaltの求め方というのはあるのでしょうか。 最も多いと思われるのは、 srand(); @salts = ("A" .. "Z", "a" .. "z", "0" .. "9", ".", "/"); $salt = $salts[int(rand(64))] . $salts[int(rand(64))]; という、普通に乱数を使ったものですが、 結構有名なCGI RESCUEでは、 http://www.rescue.ne.jp/cgi/private2/crypt.cgi ランダムな$keisuと時間を基に、かなり面倒(?)な方法を使っています。 これが何をやっているのか、いまいちわかりません。また、なぜこのような方法にするのか、ご教授のほどお願いいたします。
- みんなの回答 (5)
- 専門家の回答
お礼
ご回答ありがとうございます。 言われてみれば確かにシャッフル?を8回繰り返してますね。これが8文字のsaltに関係する(してた)可能性はありそうですね。 if ($pwd =~ /^\$1\$/)というところは、まさしくMD5用でしょうし。 シャッフルはrandを使っておきながら、そこから1文字取る方法だけ時間などを使っていて、無意味というか意味が解らないですが、、、確かに書き換えを繰り返していくうちにこうなってしまった、と考えると納得できる気がします。 おっしゃるように、どうも特に意味がないというのが正解な気がしました。 その証拠?に、このサイトの最近のプログラムだと、こんな面倒なことしてないんですよね、、先ほど気づきました。そしてこれは古そうです。 本題の疑問だった、saltは単純にrandで良いということが解っただけでも良かったです。