2ch特化型サーバ構築作戦 Part2

このエントリーをはてなブックマークに追加
740™ ◆No1111111k
ところで、特定キーでトリップが◆のみになる現象は
対処される予定がありますか?

傾向・原因は把握してます。
トリップに関することは何でも(とは言わないけど)協力します。
741root ★:03/10/12 01:27 ID:???
>>740
どうも。
実例はこれ↓以外にどんなのがありますかね。

#_迺黹
742™ ◆No1111111k :03/10/12 09:14 ID:dCt/Bt2r
>>741 乙です。泥のように寝て今起きた。

Saltに _ (アンダースコア; 0x5F)が含まれて
いるものを喰わすと、トリップが消えます。
ちなみに_は0x875F.

これは一トリップヴァカからの純粋な疑問なのですが、
この鯖のトリップ仕様を、従来の2ch鯖と同じ物(2系統あると思われ)に
合わせる予定はありますか? それとも第三の仕様にしちゃいますか?

せっかくだから、Saltを任意指定できる仕様を盛り込んでもらえると、
懐かしいトリップも、どこかの板でずっと使っていたトリップも
出せるようになり、トリップマニヤ的には宇宙ハッピーです。

# キーが11文字以上指定されたら、10,11文字目をSaltとみなす
# (9,10文字目を拾わないのは、漢字トリップを使っていた人のための対策)
$salt = substr($key."H.", 1, 2);
$salt = substr($key, 9, 2) if length($key) >= 11;

これを機にご検討下さい。
新構成鯖の試みはわたしも陰ながら期待してます。
743™ ◆No1111111k :03/10/12 09:29 ID:dCt/Bt2r
参考までに、トリップのSaltがハッシュに及ぼす作用の俺想像図。
ライブラリのソースをチェックしたワケじゃないので確度は高くない。

このへんは各実装の man にも記載されていないと思われ。

いわゆる旧鯖(たぶんSlackware, libc5?)
0x2E-0x7A に含まれない文字は . として扱う
0x30-0x40, 0x41-0x60 が、それぞれグループとして扱われる。

いわゆる新鯖(たぶんRed Hat, glibc2?)
Salt は signed char で扱われ
>=0x30, >=0x41, >=0x61, else
の各条件でSaltを数字に変換している。

今回の鯖(FreeBSD-5R?)
Salt に [./0-9A-Za-z]以外の文字が含まれていた場合
(しかもSaltがMD5仕様じゃなかった場合)、
エラー扱いとし、ハッシュの計算は一切行わない。出力は空文字。
想像では、現 bbs.cgi にて Salt の補正を
$salt =~ s/\W/./g;
みたいにやっているので、_ が含まれる文字が素通りして
crypt(3) に渡されてしまう。その結果、トリップが空になってしまう。

世間に出回っているいわゆる「2001/8流出スクリプト」においては、
もしかすると、旧鯖仕様に合わせるために、誰かが流通経路で
$salt =~ tr/:;<=>?@[\\]^_`/ABCDEFGabcdef/;
を追加したのではないだろうかと勝手に想像。