There exists a basic encryption method known as ROT13. One property of ROT13 is that the encryption and decryption processes are exactly the same. These processes work by doing a simple transformation from one letter of the alphabet to another. The letters A through M become N through Z, such that A->N, B->O, ..., M->Z. The letters N through Z become A through M, such that N->A, O->B, ..., Z->M.
One of the problems with most implementations is that everything is converted to upper case. Another problem is that numbers are ignored completely, leaving them unencrypted. One way to overcome these limitations is to extend ROT13 to cover lowercase letters as well as numbers. Here is how our extended ROT transformations will work:
characters become
A-M N-Z
N-Z A-M
a-m n-z
n-z a-m
0-4 5-9
5-9 0-4
For example, the message "Uryyb 28" would become "Hello 73" after being transformed.
U -> H 2 -> 7
r -> e 8 -> 3
y -> l
y -> l
b -> 0 Notice that the spaces were left as is.
You have intercepted a message which you believe to be encrypted using this process. Create a class SuperRot with a method decoder that takes a String message and returns the decoded message as a String. |