软件许可证的设计思路

       今天, 我们来考虑这样一个问题: 你写了一个软件tool.exe,  别人想买, 需要花1块钱, 然后你把tool.exe发给他, 他就是你的用户了。 问题是: 你怎么防止tool.exe被无限复制和传播呢? 这样岂不是就挣不到钱呢?

       这就涉及到软件许可证的控制了。 你看, 我们平常用的一些软件, 经常需要搞个验证码什么, 就是类似的道理。


       这里, 我们考虑让tool.exe绑定到具体一台电脑, 别的电脑不能用。 怎么做到呢?  我们一起来看看一个简单的设计和实现:

       1.  你把tools.exe工具发给你的用户, tooll.exe工具会生成SID信息, 这个SID信息与某一台电脑是强绑定的, 我的博文之前有介绍怎么获取这个SID信息。

       2.  用户把tools.exe上显示的SID信息发给你, 你用onlyMe.exe生成许可证文件, 变换法则是:  licenseFile = f(SID),  也就是对SID进行一系列的变化, 如RSA加密等。 然后你把licenseFile这个文件发给用户。

       3.  用户选择用tools.exe工具导入licenseFile文件, 然后tool.exe读取其中内容, 并进行解码(逆向f变换), 解出SID信息, 然后与tool.exe生成的SID比较。 相等则允许使用, 否则不允许使用。

       当然, 为了安全起见, 可以加入更加复杂的机制, 如签名, 盐等! 千万要注意:onlyMe.exe不可泄露. 

       就是这么简单, 不多说。



  • 14
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值