2chでのトリップを作成するためのRubyのライブラリです。使いかってはそんなに良くないかも…。
| trip 0.0.4 (2.99k) | 2ch tripライブラリfor Ruby |
| trip 0.0.2 (1.71k) | 2ch tripライブラリfor Ruby |
RubyについてはRubyのホームページを参考にしてください。
いつのまにかトリップ生成方法が全鯖統一されたようです。詳しくは◆ 全サーバトリップ統一作戦@2ch運用情報を見てください。
下の情報は多少古くなってしまいました。上のスレ見てちょっといろいろ確認してみます。
現在、2chの新サーバでは少々違う算出方法を使用しています。新しい方法についてはだいたいわかりました。ライブラリは少し待ってください。
トリップ検索ツールはここにはないです、下のサイトにいって見てください。(コメントは適当です。実際使用してみて、自分にあったものを見つけてください。)
| サイト | OS | UI | コメント |
|---|---|---|---|
| Trip-Mona | Win32 | CUI | たぶん最速。弱点は速度を求めた結果、複雑な正規表現が使えないこと(単純な文字列検索はできます)。中堅ユーザー向け。 |
| 見知らぬ国のトリッパー(w | Win32 | GUI | 扱いやすいインターフェース。keyからのトリップ確認などもできる。初心者向け。 |
| うとりっぱ〜 | Un*x/Win32 | CUI | ソースが公開されているので自分でカスタマイズすれば最強になるかもしれない。コアな人むけ。 |
最近、あまりにも検索でここに来る人が多いので、そんな人のためにTripの作り方を解説しておきます。
簡単な流れを説明します。アクティビティー図もどきを書いてみましたので参考にしてください。

まとめると、以下の処理になります。
saltの作り方はちょっと複雑です。
旧鯖と新鯖では変換方法が異なります。
ASCII文字列で'.'(0x2e)から'z'(0x7a)までの文字以外の文字は'.'(0x2e)にします。次に、":;<=>?@[\]^_`"を対応するがままに"ABCDEFGabcdef"に変えます。
ASCII文字列と異なるところは黄色で表示しています。
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 00 | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
| 10 | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
| 20 | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | / |
| 30 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
| 40 | G | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
| 50 | P | Q | R | S | T | U | V | W | X | Y | Z | a | b | c | d | e |
| 60 | f | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
| 70 | p | q | r | s | t | u | v | w | x | y | z | . | . | . | . | . |
| 80 | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
| 90 | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
| A0 | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
| B0 | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
| C0 | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
| D0 | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
| E0 | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
| F0 | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
これはらっしーが独自に調べたモノであって間違っているかも知れません。もし、違いを発見された方はメールや掲示板等で報告して貰えると嬉しいです。
今まではほとんどの文字が「.」に置き換えでしたが、一つ一つに文字を割り当ててます。但し、0x80(128)-0xFF(255)の文字は最上位bitが無視して割り当てされます。
旧鯖と異なる所は赤で表示しています。keyの2文字目と3文字目にこれらの文字が含まれていると新鯖と旧鯖でトリップが異なります。
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 00 | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V |
| 10 | W | X | Y | Z | a | b | c | d | e | f | g | h | i | j | k | l |
| 20 | m | n | o | p | q | r | s | t | u | v | w | x | y | z | . | / |
| 30 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
| 40 | G | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
| 50 | P | Q | R | S | T | U | V | W | X | Y | Z | a | b | c | d | e |
| 60 | f | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
| 70 | p | q | r | s | t | u | v | w | x | y | z | . | / | 0 | 1 | 2 |
| 80 | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V |
| 90 | W | X | Y | Z | a | b | c | d | e | f | g | h | i | j | k | l |
| A0 | m | n | o | p | q | r | s | t | u | v | w | x | y | z | . | / |
| B0 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
| C0 | G | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
| D0 | P | Q | R | S | T | U | V | W | X | Y | Z | a | b | c | d | e |
| E0 | f | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
| F0 | p | q | r | s | t | u | v | w | x | y | z | . | / | 0 | 1 | 2 |
"H."を加えます。
文字列の二番目と三番目を取り出します。これでできあがり。
crypt関数を使います。詳しくはCのマニュアルを読んでください。saltにはさっき作った文字列を、passにはそのまま文字列を入れます。
あとは、後ろから何文字かをとるだけ。
わかっていると思いますが、全ての文字列はCでのcharの配列のように扱います。2chでの文字コードはShift_JISですが、二バイト文字もトリップ生成においては1バイトの二つの文字として扱われます。JavaなどのcharがUnicode文字である言語や、日本語を日本語として扱う関数がある言語(たとえばRubyでjcode.rbを使った場合など)では注意が必要です。
少なくとも新鯖ではトリップ生成関数に文字列が渡されうまえにhtmlエスケープ処理がされています。
つまり、入力したkey自体が次のように変換されます。これらの処理は全ての処理の手前であり、key自体が変わってしまうことに注意してください。
よって、["<>]がkeyに含まれている場合は思ったように変換されません。
わかると思いますがsaltはどんな順番で作っても同じでしょう。
空文字列についてはsaltがどうなのか不明です。2chでは空文字列の場合tripが生成されません。「見知らぬ国のトリッパー(w」では"H."にしているようです。
詳しくは[cryptのmanページ]を見てください。
注意すべき点は二点です。
新鯖では(前処理を除き)全ての処理で最上位bitが無視されるのであるASCII文字とある半角カタカナを交換しても同じトリップが生成できます。
はるか昔は2chではこれが8文字でした。ですが、技術革新によるPCの高速化によって8文字ではkeyが発見される可能性が高くなってしまい、10文字になりました。cryptは13文字の文字を得られますが最初の2文字はsaltになっていますので、この方法では11文字以上増やせません。いづれMD5などの別方法を導入する必要が来るかもしれません