【发布时间】:2019-12-11 17:04:12
【问题描述】:
在我的应用程序中,我使用 google maps api 密钥与 google 进行通信。我在 gradle 调试/发布配置中定义了这个 MAP_KEY,如下所示:
debug {
buildConfigField 'String', 'BASE_URL', '"https://myweb.com"'
buildConfigField 'String', 'SOCKET_URL', '"https://socket.myweb.com"'
buildConfigField 'String', 'MAP_KEY', '"azaS****Ds"'
}
但如果有人从 google play store 下载我的应用程序并对其进行反编译,他将获得我的 API 令牌。这是真的?如果是,在我的代码中隐藏 api 密钥的方法是什么?
【问题讨论】:
-
谢谢!我读。所以除了只在后端使用之外,我们没有任何好的做法来隐藏密钥?
-
我建议使用 NDK 层来存储秘密。从 C++ 库中检索秘密要比从 Java/Kotlin 类中检索秘密要困难得多。您可以为此使用 github.com/nomtek/android-client-secrets 库。
-
我建议使用 NDK 层来存储秘密。从 C++ 库中检索秘密要比从 Java/Kotlin 类中检索秘密要困难得多。您可以为此使用 github.com/nomtek/android-client-secrets 库。
标签: android environment-variables api-key