Also available in: Español · Português · Français · العربية
Leetspeak Translator
Convert text to leetspeak or read it back, with an honest answer about which levels survive the round trip.
What is leetspeak?
Leetspeak — often written 1337 — replaces letters with digits and symbols that look like them. A becomes 4, E becomes 3, O becomes 0. It came out of 1980s bulletin boards, partly as an in-group marker and partly to slip past crude word filters, and it survives today in gamer tags, usernames and passwords.
It is a substitution cipher with no committee behind it. Nobody publishes a normative table, so every tool picks its own. This one offers three of the conventions in common use and, more usefully, tells you what each one costs.
Because the interesting question about a substitution is not how it looks. It is whether you can get your text back.
How to use the leetspeak translator
- Pick a direction. Text to leetspeak converts as you type. Leetspeak to text goes the other way and shows every reading your input could have, not just one guess.
- Choose a level. Basic swaps six letters for digits. Advanced adds four more. Symbols brings in @, $ and friends. The panel underneath says, for whichever you picked, whether decoding can return your exact text.
- Read the panel before you trust a decoding. When more than one reading exists the tool lists them and highlights the ones that are real English words, because that is usually how a human picks the right one.
The heaviest level is the one you can undo
It is natural to assume that the more aggressive the substitution, the more mangled the text and the harder it is to recover. That is wrong, and it is wrong in a way you can check by counting.
Reversibility depends on exactly one property: whether any symbol has to stand for two different letters. Basic substitutes six letters and uses six distinct symbols, so nothing collides. Symbols substitutes eleven letters and uses eleven distinct symbols, so nothing collides there either. Advanced substitutes ten letters using only nine symbols — and by pigeonhole, two letters must share. They are i and l, both written as 1.
That single collision is the whole difference. Run all 5,000 words of our common-word list through each level and decode them back: basic returns exactly one reading for 100 per cent of them, symbols also 100 per cent, and advanced manages 41.3 per cent. Four pairs of ordinary words become literally identical under it — fail and fall both become f411, hail and hall both become h411, ill and iii both become 111. No decoder, however clever, can tell you which one you started with.
The reason the symbols level escapes is almost funny: it moves i onto the exclamation mark, which frees the digit 1 to mean only l. Adding a more exotic substitution made the cipher cleaner, not messier.
Why decoding cannot be a lookup table
Encoding leetspeak is a simple map: each letter has one replacement, so you walk the string and swap. Decoding looks like the same job in reverse, and that is the trap. The inverse of a many-to-one map is one-to-many. If 1 can mean i or l, then a string with three 1s in it has eight possible readings, and a decoder built as a plain lookup table quietly returns one of them as though it were the answer.
So this tool expands every reading instead. For a short input that is a handful of options and you can simply look. For a longer one the count grows by a factor of two for each ambiguous character, which is why there is a cap: past twelve ambiguous positions it shows the single most likely reading and tells you the true total rather than either freezing or silently truncating a list you would assume was complete.
Filtering through a dictionary is what makes it usable. Most of those readings are not words, so the tool highlights the ones that are. That is exactly how a person reads leetspeak in the first place, and it is also how password crackers do it — which is worth knowing if you were planning to leetspeak a dictionary word and call it a strong password.
Honest limits
There is no official leetspeak, so these three tables are conventions rather than standards. Someone else's translator will disagree with this one somewhere, and neither is wrong. What generalises is not the tables but the property: count the letters a table substitutes and count the distinct symbols it uses, and if the second number is smaller, that table cannot be undone.
The dictionary used to highlight real words is a 5,000-word common English list, the same one the password strength checker uses. It will not recognise names, slang, other languages or anything technical, so a reading being unhighlighted does not mean it is wrong — only that it is not in that list.
The translator works letter by letter and knows nothing about meaning. Heavier leetspeak in the wild often stretches further than any table — replacing whole letters with multi-character shapes like |\| for N or /\/\ for M — and none of that is handled here. Those variants are also, for what it is worth, hopeless to decode automatically.
Why is it free?
Because it costs us nothing. The substitution, the expansion of every reading and the dictionary filter all run in your browser as you type — nothing is uploaded, nothing is stored, and there is no server involved to see what you typed.
So there is no account, no sign-up and no limit. Run a whole paragraph through it if you like, and if you were testing a password, all the more reason it never left your machine.