• 全部
  • 问答

求序列号随机生成及验证算法!

boyard 2004-12-03 10:10:05
一、有关用户license的序列号的生成算法,一个license包括开始时间,结束时间,密码等参数,组合这些参数生成一个序列号,要有随机性,即相同的参数可以生成不同的序列号,但它们都是正确的。
二、以上生成的序列号的验证算法,把生成参数和生成的相应序列号用该算法进行验证,参数和序列号中的任一个的任部分发生了改变,算法都会输出错误结果。

大虾们,有什么具体做法,给个方法提示或是想法!
...全文
393 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
boyard 2004-12-14
给个自己的方法:
把license看作一个对象,建一个license的类,其属性有用户名、生成的信息摘要、开始时间和结束时间,还可以定义若干的method。把生成的license对象放到数组列表中。进行用户身份认证时,根据用输入的用户名,用SHA-1或MD5生成信息摘要,与利用类method方法从ArrayList中取出的该用户名的信息摘要比较,如果相同则该用户身份合法,否则不合法。另外,由用户的登录时间进行有效期的判断。
回复
boyard 2004-12-09
楼上的,玩笑了。
回复
mxfeng 2004-12-09
机枪兵又扎兴奋剂了,呵呵
回复
捏造的信仰 2004-12-05
比方用户输入序列号每一位在User[]中

int counter = 0;
for(i=0;i<10;i++)
counter += User[i];
if (counter != 65)
printf("你他妈这什么序列号啊,没钱买就滚!")
回复
NowCan 2004-12-03
去www.pediy.com看
回复
eion 2004-12-03
根据你的要求,可以参考下的一些内容:
一、随机数的生产,可以参考Windows下的GUID的生成
二、你需要一个摘要生成算法,即给定一组数据,输出一个定长的数据,然后对后面的定长数据进行加密(密钥你自己掌握),最简单的摘要算法就是CRC校验
三、需要一个加密算法,如果一般使用可以使用对称密钥,如果要求很严就需要使用非对称密钥
四、如果有兴趣可以与我联系eion_don@china.com
回复
boyard 2004-12-03
TO galois_godel():
还请给出具体做法,或告知哪里可以找到相关资料。
thx
回复
galois_godel 2004-12-03
这不是是有很多做法嘛,你只要保证不同参数产生的序列号集合不交叉就可以了嘛
回复
boyard 2004-12-03
多谢楼上的,先动动手再说。
回复
相关推荐
发帖
数据结构与算法
创建于2007-08-27

3.2w+

社区成员

数据结构与算法相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2004-12-03 10:10
社区公告
暂无公告