Предполагая, что вы довольны неясным, а не безопасным, существует целый ряд механизмов, которые вы могли бы использовать, но обфускаторы, такие как proguard, не смогут вам помочь.
Для достижения этой цели вам потребуетсякодирование или шифрование строки самостоятельно, подход, который вы используете, зависит от того, от чего вы пытаетесь защищаться, если вы просто пытаетесь скрыться от очевидного контроля, то кодирования может быть достаточно (см. android.util.Base64, http://developer.android.com/reference/android/util/Base64.html). Обратите внимание, что кодировка НЕ БЕЗОПАСНА, и все, что нужно, это удалить очевидную ссылку на ваш сайт.
Если вы пытаетесь защитить от чего-то большего, вы можете перейти к фактическому шифрованию строки., чтобы сделать это, вы должны использовать симметричный шифр, такой как AES, через javax.crypto.Cipher, http://www.androidsnippets.org/snippets/39/index.html предоставляет пример достойного использования. Опять же, это более раздражает, чем безопасно для хакеров, так как вам нужно будет сохранитьключ где-нибудь в вашей банке, таким образом, отрицая любую криптографическую безопасность.
Чтобы сделать этоПроще говоря, основные шаги будут следующими:
- Вручную создайте зашифрованную строку, используя известный ключ.
- Преобразуйте код, чтобы использовать расшифрованную версию этой строки, пример:
До:
public class Foo {
private String mySecret = "http://example.com";
...
}
Становится:
public class Foo {
private String encrypted = "<manually created encrypted string>";
private String key = "<key used for encryption";
private String mySecret = MyDecryptUtil.decrypt(encrypted, key);
...
}
(Хорошая) альтернатива всему этому - рассмотреть возможность использования стороннего drm-решения, такого как лицензированиеСервер Google предоставляет http://android -developers.blogspot.com / 2010/07 / licensing-service-for-android.html .Это может быть более безопасно, чем то, что вы делаете сами, но на него распространяются ограничения, аналогичные описанным выше.