◆ 全サーバトリップ統一作戦

このエントリーをはてなブックマークに追加
5未承諾広告※ ◆aiY4htt2.2
トリップの歴史のようなもの(激しく添削キボンヌ)
基本。
 「name#trip」と名前欄に入力。name はそのまま出力。'#' 以降を分解。

●初代?
 製塩方法が、
  my $change_salt = substr($handle_pass, , 1) . "H";
 となっていたために、$change_salt は 'ripH' に。
 しかし、crypt で有効な塩は、2 文字分(正確には 12 ビット)
 なので、 3 文字目以降は意味を為していない。
 出力は crypt 出力文字列の後ろから 8 文字分。
  $handle_pass = substr(crypt($handle_pass, $change_salt), -8);
 結果、
 「name#trip」は、
 name ◆pdoZ.tHU
 と出力された。

●2代目?
 割れを防ぐ意味?で出力を 10 文字に増殖。
  $handle_pass = substr(crypt($handle_pass, $change_salt), -10);
 結果、
 「name#trip」は、
 name ◆hEpdoZ.tHU
 と出力された。

●3代目?(現状?)
 製塩時にフィルターが追加された?
 my $salt = substr($key."H.", 1, 2); →トリップ文字列の末尾に 'H.' を追加してから、先頭から2文字目と3文字目を抽出。
 $salt =~ s/\W/\./go; → 'a-zA-Z0-9_' 以外は '.' に変更。
 ★旧仕様のトリップ文字列では出力が違うものが出てきた。
 ★新々鯖(FreeBSD) では、'_' を内部で変換せずにエラーとして判断するために、crypt の返り値が undef (未定義値) となるために
、トリップが表示されない不具合が出た。