生成激活码
以生成12位激活码举例
-
获取三个uuid之和
-
通过cityhash转换成hash值
-
转换成base64 11位
- 将hash值转换成8字节
- 将8字节转换成base64非填充模式(64/6 = 11位)
-
生成校验码
- 对当前的11位密码取一次hash
- 做一次取模运算拿到一个字符
-
激活码等于11位密码+1位校验码
激活码激活
-
校验码校验
- 获取11位密码的hash
- 取模拿到校验码
- 做比对
-
其它数据库操作,比如校验码是否存在数据库中?
其他
激活码是导出到csv表,base64位原生的64的字符是10个数字+26个英文字母大小写和两个符号+和/。但是+和/用wps打开的时候会被当成符号导致显示不出来。所以将另外两个符号替换成#!等其它字符