PHP-基于服务器硬件/操作系统/环境生成唯一ID?

PHP-基于服务器硬件/操作系统/环境生成唯一ID?,php,Php,是否可以基于服务器硬件/OS生成唯一ID?我想为基于客户服务器的PHP web应用程序生成许可证密钥,就像Atlassian JIRA所做的那样 谢谢您的帮助。您可以尝试读取多个/变量,并将它们组合成一个字符串。在此md5之后,输入此字符串,您将拥有许可证密钥 如果您不希望您的客户每次更新其服务器时都获得新的许可证密钥,则必须小心选择哪些变量。也不是所有的系统配置都可以使用所有变量。我认为更好的方法是用任何其他语言编写一个EXE,从服务器获取HWID,然后让您的PHP脚本执行EXE(),如果EX

是否可以基于服务器硬件/OS生成唯一ID?我想为基于客户服务器的PHP web应用程序生成许可证密钥,就像Atlassian JIRA所做的那样


谢谢您的帮助。

您可以尝试读取多个/变量,并将它们组合成一个字符串。在此md5之后,输入此字符串,您将拥有许可证密钥


如果您不希望您的客户每次更新其服务器时都获得新的许可证密钥,则必须小心选择哪些变量。也不是所有的系统配置都可以使用所有变量。

我认为更好的方法是用任何其他语言编写一个EXE,从服务器获取HWID,然后让您的PHP脚本执行EXE(),如果EXE的输出匹配,则运行脚本。。。如果不是,则显示一个错误

您可能至少希望在PHP中使用blenc_encrypt(),这样可以防止用户进入并将“if(systemhwid==validhwid)”更改为“if(1==1)”

加密的一个更好的选择是使用IonCube(我认为是IonCube加密PHP文件),但不幸的是它需要很多钱

在PHP.net中搜索blenc_encrypt()函数


对于那些通过说“web服务器不应该这样做”或“您不需要在服务器上验证HWID”来回避问题的人,只需回答问题!不要只是说这不可能,因为我的回答证明这是可能的。。。你只需要跳出框框思考,你需要一点思考。另外,不要质疑用户的意图,他们只是想要一个直接的答案,没有BS。

为什么不能使用当前的时间戳???@Mayilarun现在几乎不能防止冲突,是吗?如果我使用当前的时间戳,用户可以在其他几个服务器上使用该许可证密钥。必须根据服务器规格生成许可证ID,以使其对其他服务器无效。@Cem在可能的操作系统上有多少操作空间?它将永远是*nix,永远是Windows,还是两者的混合/+其他?看看,也许可以尝试将其与MAC地址结合起来?MAC地址的缺点是它们可能被欺骗,如果用户更改其NIC,您需要重新颁发许可证,并且您需要外部程序/库来获取许可证。但它们正在接近唯一性(它们必须是特定网络的唯一性),并且将MAC与uname相结合将使欺骗变得困难。这不是不可能的,但是几乎没有什么是不可能的,而且你无论如何都是用开源语言写的。