Important Notice: Our web hosting provider recently started charging us for additional visits, which was unexpected. In response, we're seeking donations. Depending on the situation, we may explore different monetization options for our Community and Expert Contributors. It's crucial to provide more returns for their expertise and offer more Expert Validated Answers or AI Validated Answers. Learn more about our hosting issue here.

What is the difference between “normal”, “aggressive” and “flow obfuscate” String encryption?

0
Posted

What is the difference between “normal”, “aggressive” and “flow obfuscate” String encryption?

0

“Normal” String encryption encrypts all String literals that are accessed by methods in the defining class. This can mean that the values of some final String fields were not obfuscated. For example, String constants in interfaces would typically not be encrypted. “Aggressive” String encryption uses a more sophisticated approach that can normally encrypt Strings even in interfaces. The “flow obfuscate” option is the same as the “aggressive” option but causes the runtime decryption instructions, that is inserted into your bytecode, to be flow obfuscated. This makes the decrypt instructions harder to decompile but it could cause problems with some JITs. Note that the limitations mentioned above for the “aggressive” option also apply for the “flow obfuscate” option. Note also that the String Encryption “flow obfuscate” option is quite independent of the general Flow Obfuscation functionality. You can choose to have one without the other.

Related Questions

What is your question?

*Sadly, we had to bring back ads too. Hopefully more targeted.

Experts123