Solve the Encryption algorithm

<p>I stumbled across this on reddit yesterday and thought that it was really interesting. It took me nearly 2 hours to finally crack the code so I’ll throw it up on here for you guys to take a whack at it too.</p>

<p><a href=“http://failboat.me/Encryption.jar[/url]”>http://failboat.me/Encryption.jar&lt;/a&gt;&lt;/p&gt;

<p>Hints:

  1. The algorithm itself is encrypted to prevent decompilation. (ClassGuard is used)
  2. There is a reference to minecraft in the encryption algorithm.
  3. Decryption is deterministic
  4. Encryption is nondeterministic
  5. Bytecode injection of reflection code reveals the following method signatures:</p>

<p>



String onePadE(String, String)
String onePadD(String)
String encrypt(String)
String decrypt(String)
String checkSumForEText(String)
String newKey(int)
int intForChar(char)
char charForInt(int)
int formattedInt(int)


</p>