目前,我的朋友有一个程序可以检查用户的Windows CD-Key,然后通过单向加密。然后,他将新生成的数字添加到程序中以进行检查,然后编译它然后将其发送给客户端。有没有一种更好的方法可以在不使用任何类型的登录系统的情况下,以某种方式使用PHP而不是当前的方法来保持程序的共享。
答案 0 :(得分:2)
幸运的是,我在这方面做了大量的研究,更实惠,有些人认为Zend Guard更安全的选择是SourceGuardian。它允许绑定到IP地址,MAC地址,域和时间。他们还在开发一个支持连接到计算机的物理加密狗的版本。他们也经常发布并得到很好的支持。
另一个经济实惠且安全的选项是NuCoder,它们具有与SourceGuardian类似的选项,但也允许选项绑定到唯一生成的硬件ID。
无论如何,SourceGuardian和NuCoder都是最好的,但无论如何,NuCoder在支持最新的PHP版本方面落后了。目前它们支持高达5.2,而SourceGuardian支持最新,包括5.3。
此外,由于您的代码转换为受保护的字节码,因此您还可以获得速度优势,因为PHP无需采取额外步骤将代码转换为字节码。但是,正如之前的评论者所指出的,这将要求您的用户安装必要的加载器,但是,这通常需要对php.ini添加简单的行,或者在>的情况下。 5.2.6,否则通常不需要增加。
答案 1 :(得分:1)
简而言之,任何使用密钥的程序都可以以某种方式伪造。特别是如果源是可用的(大多数PHP项目就是这种情况。如果你真的想要一些专业的话,你可能想看看Zend Gard。)但是在我看来,大多数安全系统对客户来说是一种痛苦。 / p>
一个好的系统我曾经遇到过一个C编译库,它有许多冗余的代码检查(类似意大利面条的调用树)并会验证加密的序列号。由于应用程序是定制的并且没有很多版本,因此没有“破解”可用,当经销商破产时客户端处于深水状态。最终,该代码无论如何都被破解了。
在我看来,唯一真正安全的方法是托管您的应用程序而不发布任何源代码,然后让客户支付许可证,并仅向他发送他必须为每个请求发送的API密钥。