>>1
tripcodes in a nutshell
(I am not a native English speaker, so forgive me if my explanation is not very clear)
There is a key (moot#
faggot <- this is the key), and a buffer filled with initial constant value, same for each tripcode.
Each step of algorithm takes buffer, and modifies in a way that is dependent on key. This modification is pretty simple and reversible. Knowing contents of buffer before and after modification you can find key; knowing key and contents of buffer after modification you can find contents of buffer before modification. IIRC crypt(3) consists of 12 steps. The resulting buffer is your tripcode (!Εр8рui8Vw2).
Imagine crypt has only one step.
Then, as an attacker, you know contents of buffer before and after modification (Εр8рui8Vw2 and a known constant). You can easily find key and break tripcode.
Imagine crypt has two steps. You know resulting buffer, and initial buffer; you don't know key and contents of buffer between steps 1 and 2. To find key you need either initial buffer and buffer between steps 1 and 2, or resulting buffer and buffer between steps 1 and 2. To find contents of buffer between steps 1 and 2 you can either use key and initial buffer, or use key and resulting buffer. So you have to iterate through all possible contents of buffer between steps 1 and 2, and to see if you can find key for any of them.
With 12 steps and 11 unknown buffers this becomes too difficult and people just iterate through all possible values of key to see if they can get resulting buffer from initial.