在我的应用程序中,我使用了许多第三方API,这些API需要API key 并且具有我不能超过的配额。

我担心有人反编译我的应用程序会看到这些 key 并使用它们。

如何隐藏它们?

我正在使用proguard进行混淆

最佳答案

正如Hopkinson先生指出的那样,如果您的应用程序能够将API key 传递给API,则有人可能会获得该 key 。

理想情况下,该 key 应与许多Google API(例如GCM,Maps V2)绑定(bind)到您的应用签名 key ,因此即使有人获得了您的API key ,他们也不会轻易使用它。

除此之外,还可以购买ProGuard的商业扩展DexGuard,它可以对应用程序中的数据(资源,静态字符串等)进行加密。这可以打破,但是这样做很乏味。如果攻击者确实想要您的API key ,则攻击者可以获取它。但是,如果这更多是“偶然”攻击,则攻击者可能会认为这不值得付出努力并继续前进。

10-07 16:17
查看更多