在 Android 中如何优雅地配置私密信息

  • 时间:
  • 浏览:1

直接硬编码肯定一定会最好的措施,倘若代码上传就会分享到各个地方。最好的措施是当然是保处在服务端,在能够 的后后进行获取。

Android 密钥库系统都还上能 保护密钥材料免遭未经授权的使用。首先,Android 密钥库都还上能 除理从程序运行运行池池和 Android 设备中整体提取密钥材料,从而除理了在 Android 设备之外以未经授权的措施使用密钥材料。其次,Android 密钥库都还上能 让应用指定密钥的授权使用措施,并在程序运行运行池池之外强制实施哪此限制,从而除理了在 Android 设备上以未经授权的措施使用密钥材料。

你這個文件信息定义打包 keystore 密码和 App Key 等信息。

一般来说有以下几种措施

保处在服务端,通过接口获取

你這個是 Google 自家提供的 API, 但它只在 Android 4.3 后后的系统中才引用,故此方案有一定的限制。

要在 .gitignore 文件中忽略 gradle.properties 文件

首先介绍一种简单措施在 gradle 种配置 string 资源和常量的措施。而一定会直接在 string 文件中硬编码。

https://guides.codepath.com/android/Storing-Secret-Keys-in-Android

https://developer.android.com/training/articles/keystore.html

在实际的项目开发中,老会 会用到后后 第三方的 SDK ,而使用哪此 SDK 基本上一定会能够 配置 APPKEYAPPSECRET 等信息。此外 APP 打包时能够 KEYSTORE , STOREPASSWORD的信息。哪此一定会私密配置信息,不应该发布到 Github 或其它公共空间。

对于后后 安全性要求比较高的 APP 来说,是推荐使用你這個措施的。同时接口要使用 Https 协议

都还上能 将加密算法封塞进 NDK 中,在一定程度上增加了破解的难度。后后都还上能 不受 API Level 的限制。

使用 gradle 措施安全性是最弱的。

这么当通过接口获取到私密信息如保保存呢?这后后都还上能 使用 NDK 肯能 Android 密钥库系统。

使用 NDK 加密

首先在 Project 的目录下创建一个多多多 gradle.properties 文件。这类配置

在 app 目录下的 build.gradle 文件中对 keystore 和 APP_KEY 等信息进行了配置。

配置在 BuildConfig 类中

要在 .gitignore 文件中忽略 gradle.properties 文件

写在 string 资源文件中

要在 .gitignore 文件中忽略 gradle.properties 文件

最后最关键的后后 是

使用 Android 密钥库系统