java - (Android) 加密数据不允许知晓源代码中使用的方法

标签 java android encryption

我目前正在帮助一个项目,其中某些数据必须使用某种对称算法(当前实现的 SSL/TLS 连接之上的第二级加密)进行加密。

问题是,如果我们从 .apk 中提取源代码(使用 ApkTooldex2jarJava 等工具反编译器)我们实际上可以看到种子和用于生成对称 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/

相关文章:

java - 为 SSL 套接字启用哪些密码套件?

java - 传递 Filefilter 作为参数时出现 IOException

java - 使用 nline.setText ("\n"附加新行时应用程序崩溃)

android - 无法访问本地 aar 库中的自定义 View ?

android - 如何单独/单独对齐行内的子可组合项?

android - 拖放应用程序构建器许可。如何确保源代码不会被反编译和重复使用?

java - 使用 xml 映射的 Hibernate 派生属性

java - 在 Android 库中获取上下文

java - 如何在 Android 中将 ASCII 字符转换为字符串?

Android中的C#密码编码