Независимо от того, что вы делаете, код для этого будет в клиенте, и все, что вы можете сделать, это запутать. Если вы, как говорит Томаш, хотите, чтобы клиент прошел аутентификацию на сервере, а затем получил соль (или ключ от асимметричной пары ключей), вам все равно потребуется весь код, необходимый для подключения к этому серверу на клиенте. Поэтому, независимо от того, что вы делаете, все ингредиенты должны быть в клиенте и, следовательно, на вашем компьютере «хакеров». Это просто гораздо более сложный вопрос для хакера.
Это одинаково для всех типов клиентов, независимо от того, на каком языке они написаны. Если DVD-плеер может показывать дешифрованный DVD-диск на вашем телевизоре, он должен иметь ключ для дешифрования в памяти, который вы могу найти. Вот почему никто не сделал идеальную защиту от копирования:)
EDIT:
Как все остальные говорят. Стандартный обфускатор - это, вероятно, лучший путь, и вы могли бы сначала заставить клиента перепрыгнуть через несколько дополнительных обручей.
EDIT2:
Оказывается, я не правильно понял Томаша. Если пользователь сам имеет ключ для аутентификации на сервере, чтобы получить хеш, это действительно подтвердит, что сообщение было отправлено от пользователя, но все же не из приложения. Если это вопрос избежания мошенничества, то хакер, вероятно, уже является клиентом (покупая продукт или создавая аккаунт). Если вы хотите аутентифицировать пользователя, то это совсем другое дело, и это вполне возможно. (конечно, со своими проблемами)