【问题标题】:(Android) Encrypting data disallowing awarness of the method used in the source code(Android) 加密数据不允许对源代码中使用的方法的警告
【发布时间】:2015-06-14 08:49:15
【问题描述】:
我目前正在帮助一个项目,其中必须使用某种对称算法(当前实施的 SSL/TLS 连接之上的第二级加密)对某些数据进行加密。
问题在于,如果我们从 .apk 中提取源代码(使用 ApkTool、dex2jar 和 Java 等工具)反编译器)我们实际上可以看到用于生成对称密钥的种子和方法,从而加密并将有效数据发送到服务器。
然后出现一些问题,例如我们如何定义对称密钥以加密从手机到服务器的(非常敏感的)数据,但不允许某人如何提取 .apk 以查看“方式”密钥生成。
非常感谢您!
沃伦。
【问题讨论】:
标签:
java
android
encryption
【解决方案1】:
据我所知,您可以使用 Proguard 来混淆您的代码。
在您的 build.gradle 中,您可以将 minifyEnabled 设置为 true 而不是(默认)false。
然后会混淆你的代码。
例子:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
}