android:programatically是否可以将Strings存储在已经可用的密钥库中

时间:2018-02-26 05:55:52

标签: android credentials android-keystore

我想在密钥库中存储一个字符串,这是加密某些数据的关键。 我已经把那个键作为字符串我在我的代码中写了那个键。但是当我反编译我的代码时,密钥对我来说是可见的 那么这个问题是否有任何解决方案 请帮忙

2 个答案:

答案 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);