我目前正在帮助一个项目,其中某些数据必须使用某种对称算法(当前实现的 SSL/TLS 连接之上的第二级加密)进行加密。
问题是,如果我们从 .apk 中提取源代码(使用 ApkTool、dex2jar 和 Java 等工具反编译器)我们实际上可以看到种子和用于生成对称 key 的方法,从而加密并将有效数据发送到服务器。
随之而来的一些问题是,我们如何定义对称 key ,以便加密从手机到服务器的(非常敏感的)数据,但又不允许其他人提取.apk来查看生成 key 的“方式”。
提前非常感谢您!
沃伦。
最佳答案
据我所知,您可以使用 Proguard 来混淆您的代码。
在 build.gradle 中,您可以将 minifyEnabled 设置为 true 而不是(默认) false。 这会混淆你的代码。
示例:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
}
关于java - (Android) 加密数据不允许知晓源代码中使用的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30824950/