我目前正在编写一个 Android 库(AAR 文件),它将附带一个数据库(放置在应用程序的 asset/文件夹中)。数据库中的数据包括一些敏感数据,我希望保护这些数据免受我的图书馆和数据库用户的侵害。
我考虑过加密数据并将解密 key 存储在我的库的源代码中。但当然这种方法非常不安全,因为任何人都可以反编译源代码并读取解密 key 。
然后我的同事建议执行上述操作并使用 ProGuard 来混淆源代码,使反编译器无法理解 key 是什么以及 key 在哪里。这个方法可行吗?
最佳答案
Proguard
将通过为所有方法、类和变量提供随机无意义的名称来混淆代码。即使反编译后,如果没有您自己的 mappings.txt
文件,这些内容也很难理解。确保其安全,以便解决生产中的问题。
但是反编译时仍然可以看到硬编码字符串。您需要操作该字符串并将其存储为加密或其他内容。使用前先写一个解密的方法。
了解有关 proguard 及其优点的更多信息 here .
关于android - ProGuard 是否保护源代码中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34889080/