Two substitution tables
Leetspeak ("1337" is "elite") replaces letters with digits and symbols that look similar. The tool offers two encoding levels, both based on simple one-to-one lookups with no random choice, so the same input always gives the same output.
| Level | Replacements |
|---|---|
| Basic (6 letters) | a to 4, e to 3, i to 1, o to 0, s to 5, t to 7 |
| Advanced (12 letters) | All of the above, plus b to 8, c to (, g to 6, h to #, l to 1, z to 2 |
Lookups ignore case, but a letter that has no substitute keeps whatever case you typed, while a replaced letter becomes the digit or symbol. Everything else, including punctuation and spaces, is untouched.
Worked examples
| Input | Basic | Advanced |
|---|---|---|
leet | l337 | 1337 |
hacker | h4ck3r | #4(k3r |
Hello World | H3ll0 W0rld | #3110 W0r1d |
Elite Hackers | 3l173 H4ck3r5 | 31173 #4(k3r5 |
That is why "1337" itself only appears in Advanced mode: in Basic, the letter l has no replacement.
Decoding is lossy
Leet to Text applies one reverse table, regardless of the level you chose for encoding: 4 to a, 3 to e, 1 to i, 0 to o, 5 to s, 7 to t, 8 to b, 6 to g, 2 to z, # to h and ( to c. Several problems follow from that.
- The digit 1 always becomes i, never l. So
1337 h4x0rdecodes asieet haxor, not "leet haxor". - Standalone numbers are kept by default.
7h3 y34r 2024becomesthe year 2024, because a token that is only digits, optionally with. , : / -between them (2024, 3.5, 12:30), is treated as a real number. The catch is that an all-digit leet word such as1337is kept too; untick "Keep standalone numbers" to decode those. Digits mixed with letters, as inh4x0r, are always decoded. - Case is lost for every decoded character, which are all lower-case.
- Other leet styles are not recognised. Multi-character swaps such as
|<for k,/\for A or|\|for N are left unchanged.
Practical notes
- Leet was historically used for in-group style, and later to dodge simple word filters. Modern filters usually normalise these swaps first, so it no longer hides much.
- It is a poor way to strengthen a password. Substitutions like
p4ssw0rdare included in every cracking dictionary; check what actually makes a password strong with the password strength checker. - Readability falls fast at Advanced level, since # and ( stand in for letters, so keep it to short usernames and headings.
For other letter-swapping puzzles try ROT13, or restyle text with the fancy text generator.