Babel Encrypt Plugin
The Babel Encrypt plugin encrypts strings with a double encryption algorithm, XOR and HASH. For each inline coded string the algorithm is chosen based on encrypting string length.
Basically, short strings can be decrypted fast by XOR algorithm, while long strings are best handled by HASH algorithm. The XOR algorithm has the advantage to inline encrypted strings so there in no need to decrypt the string when the application starts. The HASH algorithm stores the strings inside an encrypted hash that is decrypted when the application starts, increasing the application startup time.
The double encryption choice has other advantages. Many deobfuscator try to defeat string encryption by directly calling, with reflection, the method that decrypts the string. Having more than one decryption entry point, could create some trouble for the deobfuscator. Moreover, this encryption plugin supports double pass, so that if on the first pass the string is hashed, on the second pass the encrypted hash string it will be xored, making more difficult for a deobfuscator to reconstruct the correct method call sequence.