为了不暴露我的Google Map API key,最好不要在Android应用本身的repo中包含API key。如果API密钥不在应用中,我应该如何使用谷歌地图?将API密钥存储在服务器中是最好的办法,那么我是否要在应用初始化时进行网络调用,请求获得API密钥?得到服务器的响应后,将API密钥存储在共享的偏好设置中?这是我能想到的唯一方法,但如果存储在共享偏好设置中,我相信可以通过逆向工程读取共享偏好设置中的值来获取API密钥。谁能告诉我,使用API密钥的安全方式是什么,谢谢。
在Android应用中安全使用谷歌地图平台API密钥的方法在谷歌地图平台文档中有所描述。
https:/developers.google.commapsdocumentationandroid-sdkget-api-key#restrict_key。
诀窍是应用Android应用限制,包括你的应用的包名和证书的SHA-1指纹。这个限制是在你的谷歌云控制台中设置的,不会暴露在你的源代码中的任何地方。
如果有人试图以未经授权的方式使用你的API密钥,他们会得到一个错误,因为他们需要你的私人证书来使API密钥工作。
所以,如果你正确设置了Android限制,在源代码中添加API密钥是没有问题的。
另外,我建议看一下API密钥最佳实践文章。
https:/developers.google.commapsapi-key-best-practices。
希望我的回答能澄清你的疑问。