Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在AndroidManifest.xml中隐藏API键_Android_Security_Flutter_Api Key - Fatal编程技术网

如何在AndroidManifest.xml中隐藏API键

如何在AndroidManifest.xml中隐藏API键,android,security,flutter,api-key,Android,Security,Flutter,Api Key,我刚刚开始使用flatter,它要求我将生成的API密钥插入android manifest.xml文件中的android/app/src/main/android manifest.xml。几分钟后,我将其提交到回购协议中,并立即收到谷歌和Git的警告,要求更改并生成新密钥等(不知道您不应该这样做,所以我现在很清楚) 之后,我开始寻找隐藏API键的方法。一种解决方案是使用,但这只在.dart文件中有用(我认为)。另一种方法是创建一个单独的文件并将其添加到.gitignore中,但当我构建APK

我刚刚开始使用flatter,它要求我将生成的API密钥插入
android manifest.xml
文件中的
android/app/src/main/android manifest.xml
。几分钟后,我将其提交到回购协议中,并立即收到谷歌和Git的警告,要求更改并生成新密钥等(不知道您不应该这样做,所以我现在很清楚)

之后,我开始寻找隐藏API键的方法。一种解决方案是使用,但这只在
.dart
文件中有用(我认为)。另一种方法是创建一个单独的文件并将其添加到.gitignore中,但当我构建APK时,该文件不会也被绑定吗


理想情况下,我希望发布它,但我不希望密钥易于访问,因此如何在不使用明文的情况下将API密钥加载到
AndroidManifest.xml
文件中?我想避免使用后端,所以我想我可以手动对其进行哈希,然后在运行时取消哈希,但我仍然不知道如何动态更改
AndroidManifest.xml
文件。

您无法将清单中存储的密钥混淆为已存储(静态)密钥值将直接由谷歌地图API本身使用。要确保您的密钥,请考虑在GCP控制台中添加限制,以便只有授权的客户端才能使用您的密钥。 有关更多详细信息,请参阅此链接:

以下是有关保护API密钥的最佳做法的更多信息:
除了直接在APP中定位第三方API的这些服务包装,考虑不同的拓扑,其中服务器上的服务与应用程序分离。这需要更多的工作,但密钥没有任何安全问题,因为您控制服务器。@RobertRowntree我说过我希望避免使用后端,即服务器。我知道可以通过firebase实现,但我仍在寻找替代方案。如果我在GCP中限制密钥,这是否意味着我可以将其与生产中的APK捆绑?@s.Ramjit是的。只要正确配置了限制,就不必担心未经授权的使用。在GCP控制台中监视您的使用情况也是一种很好的做法。