建议不要在APK中存储密码 . 当我们谈论密钥库密码时,还有更多 . 是的,攻击者可以并且将会找到读取密码的方法,因为这就是他们所做的 . 在APK中读取鲁莽包含的密码 . 假设您使用gradle,有一种使用gradle指定如何存储密钥库密码的方法 .
PROPERTIES FILE
如果您使用的是版本控制,请修改 .gitignore 文件以排除 keystore.properties ,这是一个包含密码的文件 . 然后将它推入回购 . 这样做可以防止共享项目中的其他开发人员了解密钥库详细信息 . 您现在可以在项目的根目录中创建实际的 keystore.properties 文件 . 该文件应包含以下内容:
keyAlias yourKeyAlias
keyPassword yourKeyPassword
storeFile pathOfYourKeyStoreFile
storePassword passwordOfYourKeyStoreFile
GRADLE
设置 keystore.properties 文件后,通过在 android { ... } 子句之外定义属性变量来修改模块级gradle构建文件,例如:
def keystorePropertiesFile= rootProject.file("keystore.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
android { ... }
在 android { ... } 内,声明 signingConfigs { ... } ,这样:
android {
signingConfigs {
config {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
...........
}
最后,仍然在你的模块级gradle构建文件中,你应该有 buildTypes { ... } 子句,它包含默认的 debug { ... } 和 release { ... } 配置 . 修改 release 配置,以便:
buildTypes {
debug {
*insert debug configs here*
}
release {
*insert release configs here*
signingConfig signingConfigs.config
}
}
在 release { ... } 中定义 signingConfig signingConfigs.config 将允许您在选择创建发布版本时自动签署APK,所有这些都不会将您的密钥库密码存储在APK中 . 干杯!