Rot8000

max_sendfeld | 158 points

In case the author sees this, some comments about Rotator.cs.

1. This algorithm will break if the number of valid characters in the BMP becomes odd.

EDIT: As user platforms pointed out, there is an unit test for this.

2. There is an overflow in line 39 because of the check i <= BMP_SIZE in line 37.

3. The web server at rot8000.com exposes at least some errors with stack traces, try rotating the string <script>.

4. In line 42 you are performing a linear search for every character you transform, that is very inefficient, especially with characters at the end of the BMP. At least use a hash map or even better just use an array mapping the input code point directly to the output code point.

5. rot8000.com does at the very least allow rather long inputs which paired with the inefficiency of the linear search makes a DoS attack pretty easy. I tried a 10,000 word lorem ipsum, it was not rejected and the request took a minute to complete.

danbruc | 5 years ago

Interesting! I made a very similar tool earlier this year.

It comes with presets for various different areas of Unicode, and some example text, although the intended use case was very different, I looked at it from a steganography perspective rather than an honours-system obfuscation perspective.

https://incoherency.co.uk/mojibake/

I initially thought it would be able to decode the rot8000 output without any modification but I think the utf-8 escaping that my tool expects (from its own output) gets confused by the output from rot8000.

jstanley | 5 years ago

This certainly is what I would call a “neat hack”. Out of curiosity I had to check what it rotates Japanese into. Turns out, mostly Korean: “日本語はどうかな?” becomes “ື걅갿개갡걀等”.

ninjin | 5 years ago

It meticulously refrains from rotating emoji. Somehow this feels like failure.

egypturnash | 5 years ago

I was curious as to how one might implement this with a familiar language, and fetched up on this interesting python github script, specifically "rot32768"[0]

[0] https://gist.github.com/terrorbyte/7967039

theophrastus | 5 years ago

FYI: Here's a static JavaScript version I whipped-up ( as a lunch-time challenge ) that will reversable rotate everything except whitespace...

https://github.com/jeffallen6767/rot0x8000

ConcernedCoder | 5 years ago

籝籱籮 籺籾籲籬籴 籫类籸粀籷 籯籸粁 米籾籶籹籼 籸籿籮类 簹粁籁簹簹簹 籭籸籰籼簷 http://rot8000.com/Index?%E7%B1%9D%E7%B1%B1%E7%B1%AE%20%E7%B...

platforms | 5 years ago

Reminds me 锟斤拷 due to Unicode replacement character misinterpretation problem. When placeholder 'U+FFFD' decoded using GBK it will displayed as these characters. Some of glitches can still be found online, e.g., https://docs.oracle.com/cd/E19199-01/817-4244-10/preface.htm...

tsaoyu | 5 years ago

If you are just starting to get interested in cryptography, try and make a program that can break ciphers like this one or similar. Hint: Use frequency analysis on sample ciphertext and compare to known letter frequencies in english letter to match to plaintext. Then you can determine the offset and decrypt

omarforgotpwd | 5 years ago

Can someone explain what this is doing please?

collyw | 5 years ago

Reminds me of the infamous 畂桳栠摩琠敨映捡獴.

TazeTSchnitzel | 5 years ago

Fun, but outputs unprintable or non-used characters and only functions on the BMP?

supakeen | 5 years ago

Reminds me of http://base91.sourceforge.net/.

We could go further, straight to Base8000!

loa_in_ | 5 years ago

Should also change spaces to zero-width spaces, which would then make it less obvious where the word breaks are.

dullroar | 5 years ago
[deleted]
| 5 years ago
[deleted]
| 5 years ago

籖粂 籶籸籽籱籮类 籪籽籮 粂籸籾类 籬籱籲粀籸粀籸粀籸粀粀

dana321 | 5 years ago

Noone is concerned by the fact this is sending your text using POST requests. The guy could not use DOM/JS.

tuttle7 | 5 years ago