In short: no
the application CAN be decompiled: obfuscation will only make it (much) harder to pinpoint the location in code where the password is. You can also use some methods to create the password (eg: different methods that generate part of the password, which is then concatenated etc ...): when these methods are obfuscated they will no longer have a useful name (eg: "GetFirstPartOfPassword" will becoime "dsdsfsdfss1" - I don't know which obfuscation algorithms are being used, so this is just an example).
It can be to such an extend that network sniffing is easier than grabbing the password in code.
The only safe method is by using an assymmetric encryption algorithm, which basically boils down to:
- the server is generating a random string; being send to the app
- the app encrypts the random string using the public key and send this back to the server
- the server decrypts it again using a private key and check whether it matches.
The private and the public key are different: the app will only know the public key and based on the public key, the private key can not be generated.
But the standard FTP protocol does not support this.
Wim