Java compiles to bytecode which can be rather easily converted back into readable source code with a free tool like this. Java isn't meant for keeping your source code secure and even if you use C++ someone sufficiently dedicated will manage to reverse-engineer your code if they want to. I'm not trying to be offensive, but if you have to ask this question you probably aren't writing anything that would be worth someone's time to try to steal anyway at the moment. Just write your program, practice and don't worry about people decompiling your code because anything you do can only make it slightly harder for them, not stop them.

Java compiles to bytecode which can be rather easily converted back into readable source code with a free tool like this. Java isn't meant for keeping your source code secure and even if you use C++ someone sufficiently dedicated will manage to reverse-engineer your code if they want to. I'm not trying to be offensive, but if you have to ask this question you probably aren't writing anything that would be worth someone's time to try to steal anyway at the moment. Just write your program, practice and don't worry about people decompiling your code because anything you do can only make it slightly harder for them, not stop them.

I do not take you comment offensively but I am making encryption programs and I am simply exploring methods to ensure no reverse engineering of the encrypted data can happen (or happen with extreme ease)

I do not take you comment offensively but I am making encryption programs and I am simply exploring methods to ensure no reverse engineering of the encrypted data can happen (or happen with extreme ease)

I do not take you comment offensively but I am making encryption programs and I am simply exploring methods to ensure no reverse engineering of the encrypted data can happen (or happen with extreme ease)

A good encryption method is hard to break even if the attacker knows exactly how it works. Obfuscating your source code will NOT improve the strength of the encryption it performs. Everyone knows how AES works, for instance, yet no one can break it. The program TrueCrypt is open-source yet it is widely used to secure sensitive data and is considered secure.

Security comes not from obfuscation of algorithms but from the time it would take an attacker to break the encryption.

A good encryption method is hard to break even if the attacker knows exactly how it works. Obfuscating your source code will NOT improve the strength of the encryption it performs. Everyone knows how AES works, for instance, yet no one can break it. The program TrueCrypt is open-source yet it is widely used to secure sensitive data and is considered secure.

Exactly, encryption should be provably difficult to calculate the reverse of some function. Don't rely on security through obscurity, use logic and proofs!

There is no such thing.
You can make it harder yes, if you want to completely stop people from knowing how your program works well then the best and only way I can see to do that is release your program in a non-working state.
If a computer can read and execute it, so can a human (with some effort/tools/hassle)

I do not take you comment offensively but I am making encryption programs and I am simply exploring methods to ensure no reverse engineering of the encrypted data can happen (or happen with extreme ease)

A good encryption method is hard to break even if the attacker knows exactly how it works. Obfuscating your source code will NOT improve the strength of the encryption it performs. Everyone knows how AES works, for instance, yet no one can break it. The program TrueCrypt is open-source yet it is widely used to secure sensitive data and is considered secure.

Security comes not from obfuscation of algorithms but from the time it would take an attacker to break the encryption.

This!

OP, forget it, code obfuscation is not about protecting data, it's about making it harder for other programmers to copy your code. As Asik said above, just simply encrypt your data, and for f-sake don't create your own encryption algorithm, use something standard.

This thread is pointless, lets return conversation to your other thread or make a new one on the lines of 'help me design a secure chat client'.