全网首发:怎样制作CDKEY(4)-生成CDKEY

  经过加密,我们得到了16个字节的数据。现在就要转换为显示字串,也就是CDKEY了。怎么转换呢?这是思路:

  • 显示的字串,只能是26个字母+10个数字的全部36个或部分。比如说,0和O太类似,以前印刷时不容易区分,所以不用,就变成了34个。泰山OFFICE就使用的34个字符。。
  • 我们把16字节看成一个数。非常大的数。
  • 于是现在的思路就是:如何用34个字符,表示这个数?很简单啊,把10进制转换为34进制就可以了。

  这个转换有点麻烦,可以利用已有的代码,比如JAVA直接提供了BigInteger进制操作。

  再来谈谈转换后的位数。

  • 16进制,即4个bit表示一个数,最后是32长。
  • 32进制,即5个bit表示一个数,最后是26长。泰山OFFICE的开始方案就是这个。
  • 34进制呢?不好意思,也是26长。
  • 35、36进制,25长。

  泰山OFFICE使用的是34进制,结果也是25长。这是怎么回事?因为吾用到了一个高级又简单的技巧。这个想想就明白了。如果想不出来,那也可以使用35、36进制。现在印刷水平好,完全能够区分0、O。

  到了这里,CDKEY产生了,流程也介绍完毕了。是不是很简单?还有没有其他要注意的?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柳鲲鹏

能给阁下一点帮助,非常荣幸

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值