Tripcode

Tripcode是一種認證方式，主要用於匿名留言板或沒有用戶註冊系統的留言板，如日本的2ch、2chan、美国的4chan、台灣的Komica等。Tripcode是通過雜湊演算法產生的。

 概述 
由於系統不提供（或不需要）用戶註冊，所以任何人均可以使用同一用戶名留言。為了區分同一用戶名的不同使用者，可在用戶名後加入一個唯一的識別碼（詳細的產生方法見下文）。所產生的識別碼被稱為「帽子（英語：cap，日語：）」，而Tripcode這個字的來源就是日語的『』（中文：一人用帽子），取其中及合成了日語即英語Trip這個字。

 表示方式 
一般來說，一個Tripcode通常包含一個用戶名、一個已加密的密碼以及一個分隔兩者的符號。輸入時只需在用戶名的一個格內填入用戶名、指定的分隔符、以及用戶自定義的密碼。

顯示留言的時候，通常以「用戶名◆已加密的密碼」這種格式表示。分隔符起了兩種作用：正常情況下只是用來分隔用戶名和密碼，並顯示為◆；或表明偽造的用戶名，此時則顯示成◇。

以下是一些例子：

 例  輸入  輸出 1  Hello#World  Hello◆4gxleYp5e2 2  Big#World  Big◆4gxleYp5e2 3  Hello#abc  Hello◆hghTE2MlOA 4  Hello◆4gxleYp5e2  Hello◇4gxleYp5e2

 產生方法 

 使用上的注意 
由於使用了不可逆的雜湊演算來處理用戶輸入的密碼，除了用戶本身外其他人無法得知原本的密碼，而系統一般都不對原本的密碼進行記錄，適合於作為個人識別用途。然而由於密碼本身經過刪減及處理，加密後的密文亦只得10位，理論上將可能發生「碰撞」，即不同的密碼能產生相的tripcode。使用窮舉法的碰撞率大約為254分之一，使用一般的個人電腦需要約30萬年時間來算出相同的trip，雖然如此但仍不能否定它的存在。Tripcode的唯一性與理論並不相符。

加長tripcode的長度、改用更強的雜湊演算方式能減少碰撞率，相應地用於計算tripcode的時間則會增加。

然而字典攻擊對於一些系統還是湊效的，例如只包括數字的密碼只需3小時就能算出與之有相同tripcode的密碼。但同時使用salt進行加密則可避免此等攻擊。一組只存於系統內部的salt比一組用戶能夠簡單取得的salt更安全。由於不同的留言板使用了不同的salt甚至不同的演算法，用戶很難在不同的板區內使用相同的一組上顯示名稱。例如上例的第一行在板A顯示為Hello◆4gxleYp5e2，在板B以同一組密碼輸入，顯示的結果可能為Hello◆p89aJg1afk。

如同普通密碼一樣，使用大小混合和加入各式符號的密碼亦能增加安全性。

 衍生物 
一些系統為了更進一步的分辨留言板的用戶，系統會對其IP進行類似tripcode的運算。此做法是基於用戶不希望IP被直接公開，由IP加密後的密文依然存有唯一性。相對於用戶名的tripcode而言，一組特定的算法可以肯定由IP加密後的密文的理論上的唯一性。

 參見 
密碼強度

 註釋 
  通常是 # 號或 !
  然而如果不需要用Tripcode的時候後兩者可不需輸入。
  由於每個系統中使用的雜湊演算法和salt不同，會得出不同的結果。
  長度因系統而異。
  假設速度為每秒處理3萬次。
  內部即如php或perl等由伺服器端處理的地方，salt寫在這些程式碼內，一般遠端用戶無法直接存取原始檔。而如果把salt放在javascript等由用戶端計算tripcode的地方則用戶可以簡單直接地得知salt。

Category:2channel

en:Imageboard#Characteristics