如何管理许可以启用Web应用程序的功能?

vpx*_*vpx 4 php mysql licensing web-applications license-key

我将销售一种新产品,该产品将由我自己的服务器上的Web应用程序管理.Web应用程序将允许管理某些设备.

我想将可管理设备的数量限制为用户购买的许可证数量.

我的网络应用程序目前允许管理所有设备,没有数量限制.

我不知道从哪里开始实施许可(许可证密钥生成和检查),也不知道基于用户拥有的许可证密钥来限制设备.

任何帮助都非常受欢迎.先感谢您.

仅供参考:我使用的是jquery,php和mysql.

小智 8

我会在数据库中实现几个表,如下所示:

将有以下实体:用户,许可证设备

并且这些实体将如上所示彼此相关.每个许可证都将包含有关许可设备数量的信息.

当设备连接到您的服务时,您的服务会通过其ID识别它,该ID由设备在连接时发送.然后您可以检查,设备是否已注册,以及与此设备相关的许可证.

设备注册时将检查设备数量的限制.

当用户注册设备(向表中添加信息:DevicesLicensedDevices)时,您的代码应devicesQty根据Licenses表中的字段值检查具有此许可证的已注册设备的数量.

如果devicesQtyvalue允许添加更多设备,那么您的代码会将新设备添加到数据库中.

更新:

要控制许可设备的数量,您需要注册这些设备(例如 - 使用这些设备的唯一ID).否则,您无法控制使用您服务的设备数量.

一台设备连接,工作,断开连接,然后连接另一台设备,然后连接另一台设 在这种情况下你如何控制数量?我认为除非注册这些设备的ID,否则没有办法.

如果用户将他的设备更改为新设备,则应该有一个程序来更新有关已注册设备的信息.

如果您的客户仅使用Web浏览器来使用您的服务,那么控制许可证/设备的唯一方法是将userid + password + deviceId绑定到许可证.登录Web服务/ Web服务器后,请检查此信息.

如果您使用移动设备上的本机应用程序连接到您的Web服务,那么有更复杂的方法.

通过不对称加密方法实施许可证密钥生成/验证.

为每个用户生成公钥和私钥.然后将私钥存储在您的数据库中,不要将其显示给任何人.

假设你的公钥是:ABC-123-456

使用Base64算法将公钥字节转换为字母数字字符.

然后,在销售许可证时生成任意唯一的许可证代码.

假设您的许可证代码是:XYZ-789-012

并为最终用户提供公钥和许可证代码:ABC-123-456XYZ-789-012

用户将公钥和许可证代码设置为自定义移动应用程序设置.此应用程序使用此公钥加密所有发送数据.在加密数据包之前,许可证代码包含在数据包中.

当您的服务器从设备接收数据时,它会通过deviceId找到适当的用户,然后它会找到适当的私钥来解密数据包.然后它检查这个数据包的正确性.