3

我创建了使用应用内购买的应用,一切正常。现在假设设备越狱并且无法访问互联网(因此我无法验证商店收据)并且用户找到了我保存购买信息的文件并对其进行了操作。

我该如何处理这种情况?有苹果定义的方式吗?或者我应该使用加密(以及获取 ERN 的过程)?

4

2 回答 2

4

在大多数情况下,可以忽略越狱设备。如果有人真的想在越狱设备上盗版您的应用内购买,他/她将能够做到。

是的,你可以让它变得更难,但值得付出努力吗?您不会通过添加一些功能并让您的应用程序更具吸引力而获得更多利润(通过获得更多销售额)吗?

此外,Apple 正在努力使 iPhone 难以越狱,现在看来,他们这样做会相当成功。

不,据我所知,没有 Apple 定义的方式。是的,您可以使用设备 ID 作为密钥的加密(或类似的东西)。您还可以使用 iOS 钥匙串代替文件来存储您的购买信息。

于 2013-01-05T13:48:02.533 回答
0

我使用的是我自己的“技巧”来处理这个问题。

首先,我选择 2 个不同的大素数(应该是 5-6 位数字)并将它们相乘并加 1。其中一个是“主素数”,另一个取决于在商店购买的商品。

(master_prime * 素数)+1;

生成的数字是 9~15 位数字。

我将其保存在我的应用程序的 2 个不同位置(例如将NSKeyedArchiver保存到文件和 NSUserDefaults 中)。

这就是用户从商店购买东西时发生的情况。

当我启动应用程序时,我会进行一些检查:

  • 如果 2 个文件具有相同的编号
  • 如果 prime = (9-digit number/master_prime - 1) 的结果是素数
  • 如果素数具有某种性质(通常数字之和等于某个数字)

如果其中任何一个不正确,那么我会尝试连接到互联网以恢复购买。如果我不能...再见购买(直到我可以再次连接到互联网...ofc)。

为了优化这个……你可以检查第一个条件……如果不是真的,不需要检查其他条件。

我给了我的一个朋友这样的数字来破解它..他花了大约 5 个小时来完成它,其中 1 个 7 位数字作为主素数,5 位数字作为存储变量素数。这是因为他知道自己在做什么……如果你不知道如何得出这些数字,那将需要几天甚至几个月的时间。

您可以使用 3 个素数而不是 2.. 或更大的数字来改进这一点……或者每个素数都有不同的属性。

于 2013-01-05T10:42:38.550 回答