【问题标题】:Adobe Air unique id issueAdobe Air 唯一 ID 问题
【发布时间】:2014-04-14 23:09:57
【问题描述】:

我创建了一个 AIR 应用程序,它将一个 ID 发送到我的服务器以验证用户的许可证。

我使用创建它 NetworkInfo.networkInfo.findInterfaces() 并且我将第一个“name”值用于包含“LAN”的“displayName”(或者如果用户在 MAC 上,则我获得的第一个 mac 地址)。

但我遇到了一个问题: 有时用户使用 U 盘(由移动电话公司提供)连接到互联网,它会更改我得到的序列号;可能 U 盘成为 findInterfaces() 向量中的第一个值。 我可以取最后一个值,但我想我也会遇到类似的问题。

那么有没有更好的方法来识别计算机,即使是在硬件上进行了这么小的改动? 获得主板或CPU串行会很好,但似乎不可能。我找到了一些解决方法来获得它,但在 WIN 上而不是在 MAC 上工作。

我不想将数据存储在用户计算机上进行身份验证,以设置“有点”更难破解软件。

有什么想法吗?

谢谢

娜迪亚

【问题讨论】:

  • 我认为你的方法是错误的。如果用户更换网卡或从 Wifi 切换到 LAN 怎么办?您可以使用加密的 sqlite 数据库来存储您的序列号。我还建议您在 Google 上搜索用于存储凭据或序列号的已知安全方法...祝您好运!
  • 我必须同意阿德里安的观点,Digital Rights Management 这种类型将许可证的Ownership 授予卡或芯片而不是所有者。重要的是要记住任何关于计算机的东西都可能改变 CPU 或主板。如果您不想将许可证存储为文件(可以理解),下一个最佳方法是让用户登录,让您的代码从中生成哈希(包括盐)或加密字符串,将其传输到用于验证的服务器。服务器只需将其与使用类似方法生成的密钥进行比较。
  • 感谢两位的评论。回答各种问题: - 从 lan 切换到 Wifi 不是问题,因为这两个时间表都在机器上,并且 AIR 获取找到的第一个“LAN”的序列号,即使用户通过 wifi 连接,问题是“ USB key”,因为它是一个新硬件,改变了空中脚本的第一个结果。
  • 关于主板或CPU;它们可以更改,但更罕见的情况。关于加密,对不起,如果我问一些愚蠢的事情,但我从未处理过它们:如果用户在另一台 PC 上复制加密文件并启动 AIR 应用程序,他会得到有效的序列号吗?
  • 关于用户登录,我想在一台计算机上获得一个许可证,通过登录,用户可以从多台计算机上启动应用程序......我搜索了很多以找到一个好的解决方案,但没有没有找到任何对非专业程序员来说很容易但也有效的东西。

标签: actionscript-3 air adobe serial-number


【解决方案1】:

那么有没有更好的方法来识别计算机,即使硬件发生了这么小的变化?

不,没有最佳实践来识别个人计算机并在此用户许可的基础上构建软件。您应该使用 server-side/licensing-manager 来提供这样的功能。此外,它还将为您的用户提供使用桌面软件的灵活性。对于产品所有者(您没有呼叫中心,它会在每次呼叫时通过更换的网卡、硬盘等做出响应)和用户使用此类产品时要容易得多。

简而言之,用户的个人计算机是不安全的(坦率地说,您没有选择存储有价值的东西)和非常动态的环境(在硬件上使用它作为许可计划的一部分的周期非常短)。

【讨论】:

  • 是的,我知道,但是通过简单的服务器端身份验证,用户可以将其登录名/密码提供给其他人,并且更多人可以使用一个许可证进行连接。即使每 5 分钟检查一次,人们仍然可以在不同的时间共享使用它的许可证。我更喜欢将软件安装在该计算机上,如果用户更改计算机,将联系我移动许可证(例如 adobe 软件会发生这种情况)。我可以创建一个随机序列并将其加密存储在 PC 上,而不是读取网络信息,但如果用户找到它,他可以将其复制到另一台计算机上......
【解决方案2】:

我和你在同一条船上,我现在终于开始解决这个问题了......我已经研究了一年多,有几个选择。

使用 3rd 方系统时最需要注意的是浸出效果。几乎所有人都想要你的利润的一部分——在我看来,这只不过是吸血鬼软件。这是您将支付给贝宝、商家处理器等的百分比之上的。

我最终将采取的路线是创建一个可能用 Java 编写的辅助 ANE,因为 1)转换我的知识 2)能够在各种架构上运行。我不得不承认这个解决方案不是万无一失的,因为 java 的逆向工程几乎和在 FP 上运行的任何东西一样简单。关键是让它变得更难,而不是防弹。

附带说明 - 任何反对更换 CPU / 主板的人 - 如果不再这样做的话,这种情况极为罕见。我在笔记本电脑上工作,显然一旦硬件周期结束,我需要在新的笔记本电脑上重新注册所有内容。所以请...

Zarqon 开发者:Cliff Hall

这对于小规模来说似乎是一个很好的解决方案。我不相信它基于文档(比如超过几千个用户)可以很好地扩展的原因是它似乎是一个完全手动的过程,即无法绑定到支付系统然后自动生成/通知用户关键(我可能错了)。

其他有用的资源:

http://www.adobe.com/devnet/flex/articles/flex_paypal.html

【讨论】:

  • 谢谢,但这不是我要找的。 Zarqon 已被解雇(并且没有阻止用户在两台不同的 PC 上运行它)。我发现在过去的类似许可系统中可以满足我的需要,但我无法用像我这样的非常便宜的软件(售价 15 欧元)购买这项服务。关于贝宝集成,我不需要它,我有一个许可证网站,我只需要识别运行该应用程序的计算机。最后,java或其他第三方系统获得CPU序列:我测试了它们,但它们只能在win或单个操作系统上运行,而我的软件在win、mac和linux上运行。还是谢谢
  • 在任何许可配置中,您都找不到开箱即用的东西。所有这些都需要某种配置 - 这意味着您最终负责向管理控制台发送“验证”所需的细节。您将需要构建一个 ANE - 我建议根据您的要求使用 java。
猜你喜欢
  • 2014-09-16
  • 1970-01-01
  • 2017-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多