如何在Android studio中存储敏感数据



我有一些密码和API密钥为我的应用程序,我需要使用。

对于我使用过的其他开发环境,我们会创建一个。env文件,将所有敏感数据放在那里,将。env文件保存到密码管理器中,然后让开发人员知道将其拉下以启动项目,并让项目将。env文件读取到应用程序中以供使用。.env文件永远不会提交到存储库,并且设置为git忽略它。

在使用Java的Android开发中最好的方法是什么?

你可以创建一个属性文件,放在你的应用程序文件夹下,并添加到。gitignore:

属性文件passwords.properties内容示例:

password1=123456
password2=qwerty

在构建的插件声明下。gradle文件,导入属性文件并加载到properties对象中。

def passwordsPropertiesFile = rootProject.file("app/passwords.properties")
def passwordsProperties = new Properties()
passwordsProperties.load(new FileInputStream(passwordsPropertiesFile))

在gradle文件中使用:

passwordsProperties['password1']

如果您需要在应用程序代码中使用这些值,您可以在defaultConfig下将这些值添加到BuildConfig:

defaultConfig {
applicationId "some.app.id"
minSdkVersion 21
targetSdkVersion 30
...
buildConfigField "String", "PASSWORD1", passwordsProperties['password1']
}

或者通过在buildTypes部分设置BuildConfig变量来为特定的构建类型添加它:

buildTypes {
debug {
buildConfigField "String", "PASSWORD1", passwordsProperties['debug_password1']
}

prod {
buildConfigField "String", "PASSWORD1", passwordsProperties['prod_password1']
}
}

要在应用程序代码中使用该值,请使用:

BuildConfig.PASSWORD1

最新更新