软件license单节点限制解决方案

    第一次写博客,希望大家多多支持哈。前段时间老板让我实现一个存储系统的单节点限制的license系统,即在此环境下生成的license文件不能在别的机器上使用,接到任务我首先想到的是绑定硬件的唯一标识。

经过一系列的调研,发现:

1)cpu只能获取cpu型号(即同种cpu的型号是相同的),不能获取唯一标识(可能为保护用户隐私,不允许获取cpu的唯一标识)。

2)获取硬盘的设备号等信息,发现机器重启或者添加盘阵等设备后,其设备号等信息可能发生变化。

3)网卡更换的几率比极大,且网卡地址可以被伪造。

当然,这或许是我能力有限,没有找到获取硬件唯一标识的好办法,由于调研时间有限,经综合考虑,决定采取硬件加软件结合的办法。采取三种限制策略:

1)获取cpu的型号(虽然不是唯一,但能作为一个限制条件)

2)生成一个随机字符串。

3)记录license的inode(自己原创的嗷o(∩_∩)o ,经调研,linux下文件不移动的话其inode不会变化,而且inode只能由操作系统生成,不能随意指定,所以不同环境下生成的文件的inode相同的概率不大,在license文件中记录下自己的inode,若相同则说明是原来的文件,不相同的话则认为用户修改过)。

作为数据存储系统的license,除了单节点限制之外,还有时间限制、数据量限制等,在此不做赘述。license文件经加密后存储到磁盘上。本license系统只是尽量做到限制,若用户重装操作系统的话,就失效了。嘻嘻,微软这么强也防不住盗版呀,o(∩_∩)o 哈哈

以后多写写数据存储相关的博客,偶是数据存储一菜鸟~~

你可能感兴趣的:(license,单点限制,lisense)