【问题标题】:Where to store API KEY in j2me?在 j2me 中存储 API KEY 的位置?
【发布时间】:2013-05-19 09:39:48
【问题描述】:

在我的项目中,我使用 http get 请求调用 web 服务。 API 密钥也存在于 http get 参数中。 在连接到互联网之前的 j2me 设备中,它显示 URL 并请求用户许可。在这里用户可以轻松看到我的 api 密钥。

我也不想在我的应用程序中存储 api 密钥。因为使用反编译器 任何人都可以从应用程序中获取 api 密钥。

所以我的问题是在哪里存储 api 密钥以及如何使用它来调用 Web 服务?

【问题讨论】:

    标签: java-me api-key


    【解决方案1】:

    如果使用 Web 服务需要 API 密钥,那么您必须将其存储在应用程序的某个位置...顺便说一下,您可以以某种加密方式存储它,因此简单的反编译不会显示它.

    如果用户应该输入 API 密钥,您可以将其存储在应用外部的标准 RMS 存储中,同样可能会被加密。

    对于 URL 问题,使用 HTTP POST 请求而不是 HTTP GET,并在 post 数据中发送密钥。

    【讨论】:

    • 该 API 不支持 http 帖子。我正在考虑向我的网络服务器发送一个 http 帖子,我的网络服务器会将 http get 发送到 api 服务器并返回到我的应用程序。有没有其他办法??
    • 使用这样的代理似乎是合理的,这样你甚至可以在(非常强大的)代理服务器而不是 j2me 应用程序中对结果进行某种预处理
    • 我不知道这是否可行,但您可以尝试在 GET 请求中对 API 密钥进行 URLEncoding。很多 %3F 之类的东西可以隐藏第一眼的关键(而且它也不适合屏幕:))
    • 在这种情况下,我认为我应该将 api 密钥存储在它自己的服务器上?
    • @buc “某种加密方式” - 你是什么意思?反编译的源码不会泄露“加密方式”吗?
    【解决方案2】:

    您可以像刚才一样加密 api 密钥并将其存储,然后将其发布到 Web 服务。

    【讨论】:

      猜你喜欢
      • 2018-05-08
      • 2021-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-22
      • 2020-08-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多