掲示板にトリップ機能を搭載したものの、利用者から"2chトリップ検索スレで探してもらったトリップが使えない"などの苦情が出てしまった。そんな管理者・サイト作成者のために、2chトリップと同じものを出力する方法をまとめてみました。
2ch掲示板システム(以降2ch)の投稿処理スクリプト(以下bbs.cgi)に実装されているトリップの仕様において、重要なものは以下の通りです。
以下、2ch実装の現状ではあるが仕様不備であると考えられる項目を挙げます。2ちゃんねる文字化け対策@レアトリップ配信所も参考にしてください。
また、クライアント(ブラウザ)依存の問題として、クライアントが扱う文字コードは純粋な Shift_JIS ではないという点があります。これに関しては掲示板システム実装者が積極的に関知する必要はありません。
基本的に、以下の項目に従えば、2chトリップと互換であると見なされます。逆に、以下を逸脱している場合には、2chトリップと同じものを出力することは困難となります。
2ch と同様の結果を得るためには、さらに以下の項目を実施することになります。いずれを施さなくても、利用者側でキーを一部改竄することにより対応可能なので、必須ではありません。
(後日加筆予定)
(後日加筆予定)
(後日加筆予定)
ここでは、トリップにてCRYPT(3)のために用意するSaltの生成規則について説明します。
Salt は、トリップキーの2文字目および3文字目それぞれから文字を取り出し、以下の規則を用いて決定します。
| 取り出した文字 | 生成する文字 | 備考 |
| ピリオド【.】 スラッシュ【/】 数字【0-9】 アルファベット大文字【A-Z】 アルファベット小文字【a-z】 | そのまま | 全角文字の2バイト目にもこれらが含まれていることがあります。 |
| 【:】 | 【A】 | |
| 【;】 | 【B】 | |
| 【<】 | 【C】 | 2chでは先だってエスケープ処理により消滅するため該当ナシ。 |
| 【=】 | 【D】 | |
| 【>】 | 【E】 | 2chでは先だってエスケープ処理により消滅するため該当ナシ。 |
| 【?】 | 【F】 | |
| 【@】 | 【G】 | |
| 【[】 | 【a】 | |
| 【\】 | 【b】 | |
| 【]】 | 【c】 | |
| 【】 | 【d】 | |
| 【_】 | 【e】 | |
| 【】 | 【f】 | |
| それ以外 | 【. |
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
| 0x00 | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
| 0x10 | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
| 0x20 | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | / |
| 0x30 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
| 0x40 | G | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
| 0x50 | P | Q | R | S | T | U | V | W | X | Y | Z | a | b | c | d | e |
| 0x60 | f | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
| 0x70 | p | q | r | s | t | u | v | w | x | y | z | . | . | . | . | . |
| 0x80 | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
| 0x90 | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
| 0xA0 | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
| 0xB0 | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
| 0xC0 | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
| 0xD0 | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
| 0xE0 | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
| 0xF0 | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
いわゆる新鯖Salt
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
| 0x00 | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V |
| 0x10 | W | X | Y | Z | a | b | c | d | e | f | g | h | i | j | k | l |
| 0x20 | m | n | o | p | q | r | s | t | u | v | w | x | y | z | . | / |
| 0x30 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
| 0x40 | G | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
| 0x50 | P | Q | R | S | T | U | V | W | X | Y | Z | a | b | c | d | e |
| 0x60 | f | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
| 0x70 | p | q | r | s | t | u | v | w | x | y | z | . | / | 0 | 1 | 2 |
| 0x80 | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V |
| 0x90 | W | X | Y | Z | a | b | c | d | e | f | g | h | i | j | k | l |
| 0xA0 | m | n | o | p | q | r | s | t | u | v | w | x | y | z | . | / |
| 0xB0 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
| 0xC0 | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V |
| 0xD0 | W | X | Y | Z | a | b | c | d | e | f | g | h | i | j | k | l |
| 0xE0 | m | n | o | p | q | r | s | t | u | v | w | x | y | z | . | / |
| 0xF0 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
| 語 | 略語など | 概要 |
| CRYPT(3) | crypt | POSIX |
| DES | DES | 元来は56ビットキーによる64ビットデータのブロック暗号。CRYPT(3)およびトリップでは、0をキーで25回繰り返して暗号化した結果をハッシュとして用いる。 |
| HTMLエスケープ | ここに書くのか? | |
| SQLエスケープ | ' および \ を処理? | |
| エスケープ | escape | かきかけ |
| トリップ | trip, hash | トリップキーから一意に変換された10文字の文字列を指す。それぞれの文字は64通りの集合(数字, アルファベット大文字, アルファベット小文字, ピリオド, スラッシュ)にて構成される。 あるいは2chに実装されたID表示システムの通称。ひろゆき命名。 |
| トリップキー | key | えーと、めんどくせー |