如何在Android上安全地使用Google Map API密钥?

如何在Android上安全地使用Google Map API密钥?,android,google-maps-android-api-2,api-key,Android,Google Maps Android Api 2,Api Key,为了不公开我的Google Map API密钥,最好不要将API密钥包含在Android应用程序repo中。如果API密钥不在应用程序中,我该如何使用Google地图?将API密钥存储在服务器中是一种方法,那么我是否需要在app init上进行网络调用并请求API密钥?从服务器获得响应后,将API密钥存储在共享首选项中?这是我能想到的唯一方法,但如果它存储在共享首选项中,我相信可以通过反向工程读取共享首选项中的值来获得API密钥。任何人都可以告诉我使用API密钥的安全方式是什么,谢谢。谷歌地图平

为了不公开我的Google Map API密钥,最好不要将API密钥包含在Android应用程序repo中。如果API密钥不在应用程序中,我该如何使用Google地图?将API密钥存储在服务器中是一种方法,那么我是否需要在app init上进行网络调用并请求API密钥?从服务器获得响应后,将API密钥存储在共享首选项中?这是我能想到的唯一方法,但如果它存储在共享首选项中,我相信可以通过反向工程读取共享首选项中的值来获得API密钥。任何人都可以告诉我使用API密钥的安全方式是什么,谢谢。

谷歌地图平台文档中描述了Android应用程序中谷歌地图平台API密钥的安全使用:

诀窍是应用Android应用程序限制,包括应用程序的包名和证书的SHA-1指纹。这个限制是在您的谷歌云控制台中设置的,并且不会在源代码的任何地方公开

如果有人试图以未经授权的方式使用您的API密钥,他们将得到一个错误,因为他们需要您的私有证书才能使API密钥工作

因此,在源代码中添加API密钥是没有问题的,以防您正确设置了Android限制

此外,我建议您阅读API关键最佳实践文章:

我希望我的回答能澄清你的疑问