在我的应用程序中,我使用了许多需要API密钥并具有配额的第三方API,我不能过去。
我担心有人反编译我的应用程序会看到这些密钥并使用它们。
如何隐藏它们?
我正在使用proguard进行混淆
答案 0 :(得分:4)
正如Hopkinson先生指出的,如果您的应用能够将API密钥传递给API,则某人可能会获得该密钥。
理想情况下,密钥会与您的应用签名密钥相关联,就像许多Google的API(例如GCM,Maps V2)一样,即使有人获得了您的API密钥,他们也无法轻易使用它。 / p>
除此之外,还要投资DexGuard,这是ProGuard的商业扩展,用于加密应用中的数据(资源,静态字符串等)。这可以打破,但这样做很繁琐。如果攻击者确实想要您的API密钥,则攻击者可以获取它。但是,如果这更像是一种“随意”的攻击,那么攻击者可能会认为不值得努力并继续前进。