realpg
2020-07-26 13:55:42 +08:00
给你个最简单的算法 不反破解的 只防啥也不懂的
向
C:\Users\{Username}\AppData\Local\
首次启动,向目录写入一个文件
文件名为
register.db
文件内容为一个 50 位的随机数,两次 md5 后的字符串纯文本
然后 输入注册码的界面 显示一个机器码 这个机器码得出的方式为 那个文件的两次 md5 值,不是那个文件的内容,机器码为 32 位的 16 进制字符串,也可以将其转为 10 进制变为一个长数字
然后给你机器码 你用算法算成注册码给用户 用户填入得出授权是否有效
注册码生成算法为
预设到期日期假如为 20200901,转成字符串,拆解成 8 个字符 记为 A B C D E F G H
机器码进行 sha1 得出一个十六进制字符串,拆解成 char 数组,按以下索引顺序重新组合成一个字符串 其中 ABCDEFGH 是上文的字符
7,29,A,4,0,B,12,2,C,1,14,D,9,32,E,17,4,F,19,33,G,13,24,H,5,27,30,20
得到一个 28 位的字符串
然后将这个 28 位的字符串进行 SHA1 hash,得到一个字符串,取其中的第 9 位开始,连续取 4 位,字符串,作为校验码
然后将前面的 28 位字符串和这四位校验码进行拼接成一个字符串,作为注册码。
在离线 APP 验证时,先通过后四位计算注册码合法性
然后用机器码计算出 hash 判断前面的合法性,如果完全合法,提取出 ABCDEFGH 拼接成到期日期