Android - 隐藏API clientId&的最佳方法clientSecret

时间:2017-06-06 17:42:24

标签: android security gradle android-ndk android-security

我想就隐藏API密钥和密钥的最佳方式发表意见。

我发现了两种方式:

我知道风险0不存在,但什么是最安全的解决方案?

提前感谢

4 个答案:

答案 0 :(得分:3)

NDK似乎是你最好的选择,虽然不是100%安全,但肯定很难逆向工程。 gradle方式似乎根本不安全。

出于混淆和加密的目的,您还可以利用DexGuard

答案 1 :(得分:1)

要在Android应用程序中隐藏秘密密钥,我们开发了Dexguard的免费开源替代方案。我们的hidden-secrets-gradle-plugin使用NDK和XOR运算符来混淆密钥,以防止进行反向工程。

您可以选择提供自定义编码/解码算法,以提高密钥的安全性。

访问插件和所有详细信息:https://github.com/klaxit/hidden-secrets-gradle-plugin

答案 2 :(得分:0)

保护密钥的最佳方法是不将密钥放在应用程序中,为此目的,如果您使用的是高度安全的服务器(例如Amazon Server),则将密钥放在服务器上并在运行时访问它们。并且还在应用程序和服务器端应用公共/私有加密。

但如果您想继续使用该应用,那么使用" NDK"或使用" Proguard"两者都是应用程序级别的高度安全机制。

答案 3 :(得分:0)

如果您使用oAuth获取令牌,则可以在服务器上设置具有客户端ID和客户端密钥的服务器。您的应用程序从服务器获取oAuth令牌。这样,您不必在用户下载并运行的应用程序中放置客户端ID或客户端密钥。