What the converter substitutes
Leet speak, sometimes written 1337, replaces letters with digits that look roughly like them. This converter uses a fixed table of nine replacements: a becomes 4, e becomes 3, i becomes 1, o becomes 0, s becomes 5, t becomes 7, l becomes 1, g becomes 9 and b becomes 8. Every other letter, digit, space and punctuation mark is passed through untouched.
The input is lowercased before the table is applied, so an initial capital does not produce a different result. That also means the uppercase signal is lost: Elite and elite both come out as 31173, and there is no way to tell from the output which one was typed.
Why it cannot be reversed
Two letters share the digit 1, and several digits could stand for more than one letter in a looser table, so the mapping is many-to-one. Reading 31173 back as elite is a guess that happens to be right because the word is familiar; applied to an arbitrary string, the same digits could decode to several different letter sequences. This is why leet is a styling convention rather than a cipher, and why treating it as obfuscation is a mistake.
It follows that the tool is not an encoder in the cryptographic sense. It does not change length, it does not use a key, and it does not produce anything that a reader cannot undo by eye. For actual reversible encoding, base64 is the usual choice, and the base64 encoder and decoder on this site handles that pair.
Worked example
Take the phrase Elite Hacker. Lowercasing gives elite hacker. The E becomes 3, L becomes 1, I becomes 1, T becomes 7 and E becomes 3, producing 31173 for the first word. The second word gives H unchanged, A as 4, C unchanged, K unchanged, E as 3 and R unchanged, so the full output is 31173 h4ck3r. The space between the words survives, and so does every consonant that has no entry in the table.
A second pass shows how digits already in the text behave. Take SBL Tools. S becomes 5, B becomes 8 and L becomes 1, giving 581; tools becomes 70015. The result is 581 70015. Any digit the user typed, such as the 2 in a year, is left alone because digits are not keys in the table.
Where it is useful and where it is not
Gaming handles, forum usernames, stylised headings and captions are the natural home for this. It is also handy for demonstrating to a class how substitution looks without the machinery of a cipher. It is a poor choice for anything a screen reader must pronounce, for form labels, and for text that has to be searchable, since the digits break exact-match search for the original word.
Only ASCII letters are mapped. Accented characters, Cyrillic and emoji come through unchanged, so a title in French keeps its accents while its unaccented letters turn into digits, which looks inconsistent. There is no custom table and no intensity setting: the substitution is all or nothing. If you want the text mirrored as well, run the output through the text reverser afterwards, and if you want to normalise capitalisation instead of letter shapes, use the case converter.
