我想在密钥库中存储一个字符串,这是加密某些数据的关键。 我已经把那个键作为字符串我在我的代码中写了那个键。但是当我反编译我的代码时,密钥对我来说是可见的 那么这个问题是否有任何解决方案 请帮忙
答案 0 :(得分:0)
如果它在你的apk中,它可以被反编译。唯一的方法是从外部源获取它 - 在使用外部密码进行身份验证后从服务器下载它。或者让用户输入。它不能作为应用程序的一部分进行分发并保持安全。
答案 1 :(得分:0)
您可以在gradle.properties
例如:
在gradle.properties中(通常位于根项目中),您可以定义:
ENCRIPTION_KEY = "encryptionKey"
然后在你的应用程序的build.gradle
中android {
...
defaultConfig {
resValue "string", "encryption_key", ENCRIPTION_KEY
}
...
}
然后,此服务链接将在您的资源中作为R.string.service_link准备就绪。也就是说,您可以通过执行以下操作来获取值:
getString(R.string.encryption_key);