如何在 Flutter 中安全地存储 API 密钥?

Ben*_*min 5 environment-variables dart dart-pub flutter

我正在使用googleapi的 Flutter 包,要使用 Google Drive API,我需要输入凭据。我的问题是,如何将它们安全地存储在我的应用程序中,以便在我发布应用程序时无法使用它们。我找到了一个很酷的包flutter_secure_storage但要使用它,我需要将所有值放入安全存储中。那我该怎么做呢?我想使用类似的这样,但我不知道。如果有人能把我放在正确的方向上,如何通过这本书来做到这一点,那就太好了。

进一步解释一下,我不想将我的敏感信息放在文件中,例如main.dart要放入存储的变量(如果它还没有的话)。

mjh*_*en3 5

你可以通过使用 flutter_dotenv 包来做到这一点。在项目的根目录中
创建一个.env文件:

GOOGLE_API = API_KEY
Run Code Online (Sandbox Code Playgroud)

.env文件添加到您的资产包中pubspec.yaml

assets:
  - .env
Run Code Online (Sandbox Code Playgroud)

如果.env文件.gitignore还没有,请将文件添加为您的条目

.env*
Run Code Online (Sandbox Code Playgroud)

.env整个应用程序访问变量

DotEnv().env['GOOGLE_API'];
Run Code Online (Sandbox Code Playgroud)

此处阅读有关如何安装和使用该软件包的更多信息:flutter_dotenv

  • 无论如何,如果您生成 APK,它将与 APK 捆绑在一起。并且在APK的逆向工程中可以很容易地检索到它...... (2认同)
  • @RaguSwaminathan,那是不可能的。设备上存储的任何 API 密钥都可能被黑客攻击。如果你不能让你的密钥被泄露,你就必须将它们保存在后端服务器中。 (2认同)

小智 0

\xe2\x80\x99s 不可能在应用程序中存储秘密凭据。换个角度思考,并使用 Google 云平台的适当权限来保护 API 密钥。

\n\n

安全存储适用于用户内容。

\n