如何用C/C++语言实现一个类似于CD-KEY生成器程序?

灼眼的超哥 2010-10-10 01:54:50
如题,只要一个简单的示例代码即可。
有一段12个纯数字的字符,要求是这样的:
假设这12个纯数字的字符是123456789011,程序就会将这12个纯数字的字符按照规定的算法转换成类似于CD-KEY的字母+数字的样式并输出,请问,如何实现?简单的算法就行。

可以把这个程序当成一个CD-KEY算号器,输入产品序列号,输出产品密钥,就是这样。

接受输入字符,然后通过相应的公式,计算输入的纯数字的字符串,生成有字母+数字的产品密钥,使用输出产品密钥。

示例:
输入123456789011
输出:ABCDE-FGHIJ-KLMNO-PQRSW
并不是照上面那样,其他的也可以,类似就行。
...全文
547 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
scslayercat 2011-12-09
  • 打赏
  • 举报
回复
实际上,用其他更复杂的或许更加有意义。

目前.net和java界的主流做法:
在程序内部嵌入公钥,然后针对特定机型产生的字符串执行非对称加密算法(如rsa)签名,然后用公钥验证这个签名。
灼眼的超哥 2010-10-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fanghaze 的回复:]

算法得指定吧,不然有什么意义
[/Quote]
好吧,一共有4组字符,每组有5个字符,总共20个字符;第1组字符的第1个的计算方法:(第1个数+第2个数)的平方÷36的余数,能整除就为0,不能整除,根据余数的值判断,假若在0-9之间的,那就不变;假若大于9,小于或等于36,那就减去10,把减去后的数作为字母的排列序号,找到相应字母,其实,36就是10个数字+26个字母。
示例:假设12个数字中,第1个数为5,第2个数为8,那么,(5 8)²=169,169/36=4,余数为25,大于9,25-10=15,第15个字母是O,那么,第一组的第一个字符为:O。
第一组的第二个字符的计算方法一样:(第2个数+第3个数)的平方÷36的余数,第三个、第四个、第五个……依此类推。
到了第11个字符,也就是第3组的第1个字符的时候,算法是(第11个数+第12数)的平方÷36的余数,后面就不能算了,那就改成(第1个数+第2数)的平方÷36的余数,那么,第12个字符、第13个字符是:(第1个数+第3数)的平方÷36的余数、(第1个数+第4数)的平方÷36的余数……
这是我的算法,你也可以用其它简单的。
科技完美生活 2010-10-10
  • 打赏
  • 举报
回复
算法得指定吧,不然有什么意义

69,335

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧