gpt4 book ai didi

Android InApp Billing - 随机数的真正用途是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:07:09 24 4
gpt4 key购买 nike

是的,我已经阅读了@developer.android.com 上的所有文档,除了一个基本的异常(exception),我确实理解了所有文档——引入它的目的。

由于来自 Google Play 的所有订单响应都由任何人无法访问的私钥签名,并由配对的公钥验证(在我的例子中是在外部服务器上,因此第三人也无法访问)所以简单(几乎)无法欺骗。

所有这些随机数只是确保购买安全的多余方式。更重要的是,文档对这种情况只字未提,当:

  1. 我购买了一件商品;
  2. 生成随机数并将其发送到 Google Play;
  3. 发生崩溃,所以我所有的已知随机数都丢失了;
  4. 让我的应用重新启动并从 Google Play 获得回调;
  5. ...并因无法识别随机数而拒绝此调用!

在上述情况下,用户支付了一件商品却从未得到它,这是多么可耻。当然,我可以将 nonce 存储在某个文件中,并在我的应用返回时重新读取它,但这违反了 nonce 的所有原则。

恕我直言,有人刚刚说“嘿,验证过程太简单了,让我们添加更多随机性的东西,它会更酷!”。所以有人做到了。

或者,您能否打开我的思路,看看我是否缺少其他用例?否则我将从我的代码中删除整个随机数部分。

最佳答案

您无需将随机数“存储到磁盘”来解决应用程序崩溃问题。

是的,当您的应用程序崩溃时,您将丢失已知随机数列表。但是,当您的应用重新启动并且您收到 IN_APP_NOTIFY 时,您必须执行另一个 GET_PURCHASE_INFORMATION 当您执行此操作时 GET_PURCHASE_INFORMATION 您将生成一个新的随机数并且将其添加到已知随机数列表中。

您必须记住,随机数是每个 GET_PURCHASE_INFORMATION(它会返回您购买的多件商品)一个随机数,而不是每个购买的商品一个随机数。

正如您所说,您已经实现了自己的方法来避免重放攻击,但是使用随机数曾经是这样的安全方法

关于Android InApp Billing - 随机数的真正用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10517459/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com