如何生成一个激活码?

133 阅读1分钟

生成激活码

以生成12位激活码举例

  1. 获取三个uuid之和

  2. 通过cityhash转换成hash值

  3. 转换成base64 11位

    1. 将hash值转换成8字节
    2. 将8字节转换成base64非填充模式(64/6 = 11位)
  4. 生成校验码

    1. 对当前的11位密码取一次hash
    2. 做一次取模运算拿到一个字符
  5. 激活码等于11位密码+1位校验码

激活码激活

  1. 校验码校验

    1. 获取11位密码的hash
    2. 取模拿到校验码
    3. 做比对
  2. 其它数据库操作,比如校验码是否存在数据库中?

其他

激活码是导出到csv表,base64位原生的64的字符是10个数字+26个英文字母大小写和两个符号+和/。但是+和/用wps打开的时候会被当成符号导致显示不出来。所以将另外两个符号替换成#!等其它字符