I want to run a proprietary algorithm on a third-party's Java infrastructure. They gave me a jar with appropriate objects for me to build my class against. The idea is I give them a class that implements my algorithm.
How does a compiled Java class compare to a jar in terms of ease of "decompiling?"
I assume that the best one can do to protect one's IP against reverse-engineering is to run it through an obfuscator, as covered in How to protect a Jar file from being decompiled?
Except that since their infrastructure has to access named methods in my class does an obfuscator even offer that level of protection? Or if one is giving another party a compiled Java class is there practically no work required to reverse-engineer the algorithm? If the latter then what other approaches offer more security?
(I realize that all accessible code can be reverse-engineered. I just want it to require a reasonable level of effort – ideally something along the level of compiled C.)