crypt照合エラーについて

[上に] [前に] [次に]
POST 1999/08/13(金) 22:02:42
BIGLOBEでは最近、サーバの仕様が変わって、
cgiを呼び出す際には、http://cgi.www5a.biglobe.ne.jp/~**/***.cgiのようにし、
同ユーザのページからリンクした時だけ動作するようになってしまいました。(http://cgi.****で呼び出せるのは拡張子.cgiのみ)
それが原因かどうかは分かりませんが、

$now = time;
($p1, $p2) = unpack("C2", $now);
$wk = $now / (60*60*24*7) + $p1 + $p2 - 8;
@saltset = ('a'..'z','A'..'Z','0'..'9','.','/');
$nsalt = $saltset[$wk % 64] . $saltset[$now % 64];
if (!eval '$pwd = crypt($_[0],$nsalt);') { &error(1); }
if ($pwd =~ /^\$1\$/) { $salt = 3; } else { $salt = 0; }
if (crypt($_[0],substr($pwd,$salt,2)) ne $pwd) { &error(2); }

という処理をすると、error(2)に引っかかってしまいます。
原因として考えられることはありますでしょうか?

B-Cus 1999/08/18(水) 07:56:00
そこでこけるということは、一般的にはパスワードが
違ってるということが言えます。

暗号化(というより一方向ハッシュ)にはDESとMD5という
方式があり、サーバの暗号化方式(を決めるcrypt用の
ライブラリ)が変わると perlのcryptの方式も変わります。

で、サーバが変わったということなので、DESからMD5、
あるいはその逆であるMD5からDESへの変更が行われ、
その結果これまでのパスワードが無効になったのでは
ないでしょうか。あくまで予想ですが。

[上に] [前に] [次に]