gpt4 book ai didi

android - 如何保护 Android 应用程序中的字符串?

转载 作者:IT老高 更新时间:2023-10-28 21:53:04 29 4
gpt4 key购买 nike

如何在 Android 应用程序中保护字符串?

选项:

  1. ProGuard: 它不保护字符串? Does proguard work to obfuscate static string constants?

  2. 加密字符串: 用于加密我需要在某个地方存储加密 key (字符串),这也是同样的问题,如何保护加密 key 。

  3. 从网络服务获取字符串:但是这个解决方案对我不起作用,因为应用没有互联网要求/访问,这是要求/业务决策。

    <
  4. NDK: 编写包含字符串的 c 文件并使用 JNI 返回但我发现 Hex-Ray 反编译来反编译 *.so 文件 https://www.hex-rays.com/index.shtml

================================================ =

C 中的函数

jstring Java_com_abc_xyz_getString(JNIEnv* env, jobject javaThis) {
return (*env)->NewStringUTF(env, "Hello String");
}

======================================

请建议在 Android SDK/NDK 中保护字符串的最佳选项。

最佳答案

key 保护和分发是密码学中的一个大漏洞。它必须在您需要解密数据时可用。

因此,如果您的字符串是由使用设备的人输入的,您可以使用设备序列号/IMEI#/etc 作为 key 。有点安全,但逆向工程并不难。这将允许在无需用户输入密码的情况下在本地解密数据,但不允许以加密方式分发数据。

如果您尝试使用应用程序分发加密数据,正如您所发现的, key 必须是设备本地的某个人。没有与外界的通信链接,唯一的选择是在设备中或与应用程序用户。

如果您能给我们提供预期的工作流程,您可能会得到更多有用的建议?

关于android - 如何保护 Android 应用程序中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16784225/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com