有几种方法可以识别设备 - IMEI/IMSI/ESN、GoogleID、您自己的加密 GUID、保存在私人商店等。但只要人们每 3-6 个月更换一次设备,重要的是不要识别设备,而是识别设备正是用户。
我们知道 Google 使用唯一 ID 来识别用户(电子邮件)以允许在 Google Play 等上进行购买。此外,我们知道 Google 拒绝开发人员访问此 ID,将其保存并用于垃圾邮件等。实际上,现在我们可以使用 Account Manager 获取它,至少其中一个。至少我不知道如何区分哪个帐户处于活动状态并用于购买我的应用程序。
在 Widows Phone 中,我看到了一种明智的方法:系统为开发人员提供了一些来自用户帐户 ID/电子邮件的哈希值。因此,除了识别您的用户外,您无能为力。正是我想做的!即使有人偷了这个 ID,他也不能将其用作电子邮件或其他任何东西。
所以我搜索类似的东西。我仍然没有找到关于如何安全地识别用户的明确信息。有很多帖子,很多意见,但仍然没有清晰易懂的方法。
到目前为止,在 IAP 安全方案中,我想在设备上获取所有谷歌账户,并在我的或谷歌服务器上记住它们的双 md5 以进行特定的购买/订单号。稍后,当我的应用程序的任何实例将请求此购买时,发送其所有者 google-id 的双 md5,服务器将比较它为该特定购买/order_no 记住的至少一个帐户是否等于该 ID,然后将适当地回答。
但也许有更明确的方案?