2010-08-18 39 views
0

目前,我的朋友有一个程序,检查用户的Windows CD-Key,然后它通过单向加密。然后,他将这个新生成的数字添加到程序中用于检查目的,然后编译它,然后将它发送给客户端。有没有更好的方式来保持该程序不使用任何类型的登录系统,而是使用PHP以某种方式共享,而不是使用当前的方法。我还能如何检查用户的程序?

回答

1

总之,任何使用密钥的程序都可以以某种方式伪造。尤其是如果可用的资源(大多数PHP项目都是这种情况),如果你真的想要专业的东西,你可能想看看Zend Gard。)但是我认为大多数安全系统对客户来说都是一种痛苦。

A 不错系统我遇到过一次是一个C编译库,有许多冗余代码检查(意大利面类似调用树),并验证加密的序列号。由于该应用程序是自定义的,并且没有多少版本,因此没有可用的“破解”,当转售商破产时,客户处于深水处境。最终,该代码无论如何都被破解了。

在我看来,唯一真正安全的方式是托管你的应用程序并且不发布你的任何源代码,然后让客户支付一个许可证并只发送一个他必须为每个请求发送的API密钥。

2

幸运的是,我在这方面做了大量的研究,更实惠,有人说Zend Guard的安全选项是SourceGuardian。它允许绑定到IP地址,MAC地址,域和时间。他们还在研究支持连接到计算机的物理加密狗的版本。他们也经常发布并拥有相当不错的支持。

另一个经济实惠且安全的选项是NuCoder,它们与SourceGuardian有类似的选项,但也允许选项绑定到唯一生成的硬件ID。

无论如何,SourceGuardian和NuCoder都是最好的,但无论如何NuCoder已经落后于支持最新的PHP版本。目前它们支持5.2,而SourceGuardian支持最新的,包括5.3。此外,由于您的代码已转换为受保护的字节码,因此您也可以获得速度优势,因为PHP不需要额外执行将代码转换为字节码的步骤。但是,正如前面的评论者指出的那样,这将需要你的用户安装必要的装载机,但是,这通常需要在php.ini中添加一个简单的行,或者在> 5.2.6的情况下,否则通常不需要添加。

相关问题