标签: android security encryption proguard
我目前正在编写一个附带数据库的Android库(AAR文件)(将其放入应用程序的资产/文件夹中)。数据库中的数据包括一些我想要保护我的库和数据库用户的敏感数据。
我考虑过加密数据并将解密密钥存储在我库的源代码中。但是当然这种方法非常不安全,因为任何人都可以反编译源代码并读取解密密钥。
然后,我的同事建议执行上述操作并使用ProGuard对源代码进行模糊处理,使反编译器无法理解密钥的内容和位置。这种方法有用吗?
答案 0 :(得分:2)
Proguard将通过为所有方法,类和变量提供随机无意义的名称来模糊代码。即使是反编译的,如果没有mappings.txt文件也很难理解这些文件只会和你在一起。保持安全,以便解决生产中的问题。
Proguard
mappings.txt
但是硬编码字符串在反编译时仍然可以看到。您需要操纵字符串并将其存储为加密或其他内容。在使用之前写一个解密方法。
详细了解proguard及其优势here。
答案 1 :(得分:0)
不,它不会保护您的数据(字符串文字,硬编码值等)。它只会模糊你的代码。
为了存储加密密钥(在您的情况下是您的解密密钥),可以使用KeyStore。