What is ROT47?
ROT47 is a simple substitution cipher that rotates every visible ASCII character, not just letters. It covers the 94 printable characters from ! (code 33) to ~ (code 126), which includes upper and lowercase letters, digits 0–9 and punctuation such as #, @ and ?. Each character is replaced by the one 47 positions further along, wrapping around at the end.
How to use the tool
- Type or paste your text. The ROT47 version appears immediately.
- To decode, paste ROT47 text into the same box, or click Decode result. Because 47 is exactly half of 94, the same operation turns the text back.
How it works
new code = 33 + ((old code − 33 + 47) mod 94)
For example, the letter "A" has code 65. (65 − 33 + 47) mod 94 = 79, and 33 + 79 = 112, which is "p". Spaces (code 32), line breaks and non-English characters fall outside the range and are left as they are.
ROT47 compared with ROT13
| ROT13 | ROT47 | |
|---|---|---|
| Characters changed | A–Z and a–z only (52) | All printable ASCII (94) |
| Digits and symbols | Unchanged | Scrambled |
| Shift | 13 | 47 |
| Same step decodes | Yes | Yes |
ROT47 hides numbers and symbols that ROT13 leaves visible, so a phrase like "page 47" no longer gives away the number. ROT13 is available in our Caesar cipher tool with a shift of 13.
What ROT47 is used for
ROT47 is a way to obscure text, not to secure it. It is used to hide spoilers and puzzle answers, to keep email addresses or hints from being read at a glance, and in programming exercises and capture-the-flag challenges. Anyone who recognises the pattern can decode it in a second, so never use it for passwords or private data.
Frequently asked questions
Why are spaces not changed?
The space character is code 32, just below ROT47's range, so it stays a space and word lengths remain visible.
Does ROT47 work for Hindi or emoji?
No. Only the 94 basic ASCII characters are rotated; all other characters pass through unchanged.
How can I recognise ROT47 text?
It usually looks like a jumble of letters, digits and symbols with normal spaces between "words".