You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何安全配置StorePassword与KeyPassword?避免硬编码防范逆向工程

Android 应用签名信息安全处理方案

方案一:使用本地配置文件(local.properties)

这是本地开发场景下最常用的方案,彻底避免硬编码敏感信息,且配置文件不会被提交到版本控制:

  1. 在项目根目录创建local.properties文件,写入签名相关配置:
RELEASE_STORE_FILE=myreleasekey.keystore
RELEASE_STORE_PASSWORD=your_store_password
RELEASE_KEY_ALIAS=your_key_alias
RELEASE_KEY_PASSWORD=your_key_password
  1. 修改app模块的build.gradle,读取配置文件中的值:
SigningConfigs {
    release {
        def localProperties = new Properties()
        localProperties.load(rootProject.file("local.properties").newDataInputStream())
        
        storeFile file(localProperties.getProperty("RELEASE_STORE_FILE"))
        storePassword localProperties.getProperty("RELEASE_STORE_PASSWORD")
        keyAlias localProperties.getProperty("RELEASE_KEY_ALIAS")
        keyPassword localProperties.getProperty("RELEASE_KEY_PASSWORD")
    }
}
  1. 把local.properties加入.gitignore,防止敏感信息泄露:
/local.properties

方案二:使用系统环境变量

适合CI/CD自动化构建场景,将敏感信息存入系统环境变量,Gradle直接读取:

SigningConfigs {
    release {
        storeFile file("myreleasekey.keystore")
        storePassword System.getenv("RELEASE_STORE_PASSWORD")
        keyAlias System.getenv("RELEASE_KEY_ALIAS")
        keyPassword System.getenv("RELEASE_KEY_PASSWORD")
    }
}

设置环境变量的方式:

  • Windows:set RELEASE_STORE_PASSWORD=your_password
  • Linux/macOS:export RELEASE_STORE_PASSWORD=your_password

方案三:使用Gradle属性文件

可在项目根目录的gradle.properties中配置,但需确保该文件不提交到版本控制:

  1. 在gradle.properties中添加配置:
RELEASE_STORE_PASSWORD=your_store_password
RELEASE_KEY_ALIAS=your_key_alias
RELEASE_KEY_PASSWORD=your_key_password
  1. 在build.gradle中读取配置:
SigningConfigs {
    release {
        storeFile file("myreleasekey.keystore")
        storePassword project.property("RELEASE_STORE_PASSWORD")
        keyAlias project.property("RELEASE_KEY_ALIAS")
        keyPassword project.property("RELEASE_KEY_PASSWORD")
    }
}

额外安全加固建议

  • 密钥文件保护:将myreleasekey.keystore放在本地安全路径,绝不提交到版本控制;必要时可加密存储,构建前再解密。
  • 代码混淆:启用R8混淆,降低逆向工程风险,避免签名相关逻辑被轻易分析。
  • 禁止敏感日志:确保代码中没有打印签名密码、别名等敏感信息的日志。
  • 文件权限控制:在Linux/macOS系统中给keystore文件设置chmod 600 myreleasekey.keystore,限制其他用户访问权限。

内容的提问来源于stack exchange,提问作者Mehrzad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 12:03:14