全网首发:怎样制作CDKEY(3)-转换

  经过加密,我们得到了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产生了,流程也介绍完毕了。是不是很简单?还有没有其他要注意的?

上一篇:如何编写自己的Arduino库?


下一篇:34岁安卓开发大叔感慨,由浅入深