android - ProGuard 是否保护源代码中的数据?

标签 android security encryption proguard

我目前正在编写一个 Android 库(AAR 文件),它将附带一个数据库(放置在应用程序的 asset/文件夹中)。数据库中的数据包括一些敏感数据,我希望保护这些数据免受我的图书馆和数据库用户的侵害。

我考虑过加密数据并将解密 key 存储在我的库的源代码中。但当然这种方法非常不安全,因为任何人都可以反编译源代码并读取解密 key 。

然后我的同事建议执行上述操作并使用 ProGuard 来混淆源代码,使反编译器无法理解 key 是什么以及 key 在哪里。这个方法可行吗?

最佳答案

Proguard 将通过为所有方法、类和变量提供随机无意义的名称来混淆代码。即使反编译后,如果没有您自己的 mappings.txt 文件,这些内容也很难理解。确保其安全,以便解决生产中的问题。

但是反编译时仍然可以看到硬编码字符串。您需要操作该字符串并将其存储为加密或其他内容。使用前先写一个解密的方法。

了解有关 proguard 及其优点的更多信息 here .

关于android - ProGuard 是否保护源代码中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34889080/

相关文章:

Android 使用 Intent 安装 apk

spring - Webflux JWT 授权无法正常工作

在 C 中压缩和加密字节数组

java - 将 BCrypt 与 char[] 一起使用

security - 检测到弱密码

Nodejs Crypto Javascript 中的 javax.crypto.Cipher 等效代码

android - Smart Lock for Passwords 在某些手机上不起作用,错误消息 "No eligible accounts on this device"

java - 缺少与所有者的运行时依赖关系,gradle for android

java - ActionBar 向上图标不起作用

asp.net - 如何保护 web.config 中的连接字符串?