首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何管理许可以启用web应用程序的功能?

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

Stack Overflow用户
提问于 2013-03-29 16:08:51
回答 1查看 2.9K关注 0票数 5

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

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

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

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

任何帮助都会非常受欢迎。提前谢谢你。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-29 16:32:36

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

​

​

其中包括以下实体:User、License和Device

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

当一个设备连接到你的服务时,你的服务通过它的id来识别它,这个id是在连接时由设备发送的。然后,您可以检查设备是否已注册,以及与此设备相关的许可证。

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

当用户注册设备(将信息添加到表中:Devices和LicensedDevices)时,您的代码应根据Licenses表中的devicesQty字段值检查已使用此许可证注册的设备的数量。

如果devicesQty值允许添加更多设备,那么您的代码将向数据库中添加新设备。

更新:

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

一个设备连接、工作、断开,然后是另一个,然后是另一个,以此类推。在这种情况下,如何控制数量?我认为除非注册这些设备的is,否则是没有办法的。

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

如果您的客户仅使用web浏览器使用您的服务,则控制许可证/设备的唯一方法是将userid+password+deviceId绑定到许可证。并在登录到web服务/web服务器时检查此信息。

如果你在移动设备上使用原生应用程序来连接你的web服务,那么还有更复杂的方法。

通过asymetric encryption approach实现license密钥的生成/验证。

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

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

使用Base64 algorithm将公钥字节转换为字母数字字符。

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

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

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

用户将公钥和许可证代码设置为自定义移动应用程序设置。此应用程序使用此公钥对所有发送数据进行加密。并且在加密之前,许可证代码被包括在数据包中。

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

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15699618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档