keyman 发表于 2016-1-10 11:51:16

请教关于注册码的生成及长度控制问题

   公司在制作一个商业软件时计划绑定用户的使用单位、限制时间、机器码和运行态。

首先软件是多合一的形式,其中包含单费率电价,多费率,校园表,一表多卡等运行态。每个用户只允许使用一个运行态通过注册码控制,用户无法看到或改变成其他运行态。


序列号:
采用使用单位转换成MD5取前后取8位,假设使用单位是 华邦电力科技股份有限公司 实际得到0b298fcf

机器码计划取CPUID+硬盘ID经过XX算法后得出8位,假设为6b65c313

0b298fcf6b65c313转换成大写得到0B29-8FCF-6B65-C313共计16位的序列号(是否还要加一个算法更安全?)


注册码:
计划明码长度控制在16位以内经XX算法得出32位 格式 XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX


其中包含使用单位的MD5码验证+机器码+使用期限+软件运行态

假设使用单位MD5码取8位+机器码8位+使用期限6位+运行态2位 =24位显然超出16位的范围

假设只去使用单位MD5的4位做验证比对+机器码8位+使用期限6位+运行态2位=20位还是超出长度


所以来这里请求高手能给我指点迷津怎么样才能把注册码控制在32位以内同时又能把上述的东西全部包含进去。


或者某位高手可以给我一套更为科学的建议,小弟不胜感激。




PS:
1.因为考虑到部分地方没网注册码只能通过手机短信的形式发送所以暂时不考虑采用KEY文件的形式。


2.如果说不验证使用单位名称的话又不无法有效的防止张冠李戴的情况,因为使用单位必须在公司内建档的,比如注册机可查到XX单位在XX时间申请了注册码是由XX操作员生成的有效日期是XXXX。




GeekCat 发表于 2016-1-11 16:13:43

假设使用单位MD5码取8位+机器码8位+使用期限6位+运行态2位 =24位显然超出16位的范围
假设只去使用单位MD5的4位做验证比对+机器码8位+使用期限6位+运行态2位=20位还是超出长度

为什么注册码一定16位这个想不通~~~~~(是给自己找不快么)
还有就是这个为什么要拼接呢?让他超过16呢?
你可以都转16或都转10加减等等各法运算一下不就可以控制到16位的范围了么~~~

我瞎扯蛋~~~~看了就行~~~~~

keyman 发表于 2016-1-11 16:16:47

GeekCat 发表于 2016-1-11 16:13
假设使用单位MD5码取8位+机器码8位+使用期限6位+运行态2位 =24位显然超出16位的范围
假设只去使用单位MD5 ...

长度16位通过RC6算法加密得出32位序列号,如果超过的话加密后就是64位一次性输入64位字符是有点崩溃。

menglv 发表于 2016-1-11 19:41:14

我想简单将(机器码8位) xor (使用期限6位+运行态2位)就好,这样很容易根据机器码得到使用期限和运行态.

keyman 发表于 2016-1-12 08:16:26

menglv 发表于 2016-1-11 19:41
我想简单将(机器码8位) xor (使用期限6位+运行态2位)就好,这样很容易根据机器码得到使用期限和运行态.

等于说把使用单位的验证去掉? 目前看来也只能这样了。

1552759476@ 发表于 2016-1-12 09:42:51

真的很厉害,这个软件在哪里?

keyman 发表于 2016-1-12 10:41:15

1552759476@ 发表于 2016-1-12 09:42
真的很厉害,这个软件在哪里?

额。。。兄弟我是来求助的。


1552759476@ 发表于 2016-1-12 11:10:31

keyman 发表于 2016-1-12 10:41
额。。。兄弟我是来求助的。

这个论坛有一些教程,建议你慢慢看

xucs 发表于 2016-1-13 13:57:32

谢谢楼主分享
页: [1]
查看完整版本: 请教关于注册码的生成及长度控制问题