精易论坛
标题: 利用字节集的卡密生成 [打印本页]
作者: SAHI9099 时间: 2019-8-3 17:05
标题: 利用字节集的卡密生成
本帖最后由 SAHI9099 于 2019-8-3 17:17 编辑
虽然不知道这东西有啥卵用,不过还是按照我的思路给写出来了,给有需要的人
|
卡密生成 | | |
|
起始值 | 整数型 | | | |
结束值 | 整数型 | | | | 卡号前缀 | 文本型 | | | | 密钥长度 | 字节型 | | | | 混合密钥 | 逻辑型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
卡密 | 卡密 | | 0 |
temp | 字节集 | | |
i | 整数型 | | |
k | 整数型 | | |
j | 整数型 | | |
j = 结束值 - 起始值 + 1
重定义数组 (卡密, 假, j
)temp =
取空白字节集 (密钥长度
)
计次循环首 (j, i
)
卡密
[i
].卡号 = 卡号前缀 +
到文本 (起始值 + i - 1
)
置随机数种子 ()
计次循环首 (密钥长度, k
)

temp
[k
] =
多项选择 (选择 (混合密钥,
取随机数 (1, 3
), 1
),
取随机数 (48, 57
),
取随机数 (65, 90
),
取随机数 (97, 122
))

计次循环尾 ()
卡密
[i
].密钥 =
到文本 (temp
)
计次循环尾 ()
作者: 一剑磨十年 时间: 2019-8-3 17:52
支持分享 感谢开源
作者: 枫晨 时间: 2019-8-3 18:58
看看效果如何
作者: 四叶草接单 时间: 2019-8-3 22:40
你这个卡密完全随机生成呀,内部没有验证位的么,这样不够科学吧
作者: SAHI9099 时间: 2019-8-4 01:38
本帖最后由 SAHI9099 于 2019-8-4 01:43 编辑
还有验证位啊,那我闲了给他加进去,可是我也没见到类似源码里有这个验证位啊,具体有啥原理资料可以发我做参考么
作者: SAHI9099 时间: 2019-8-4 03:16
本帖最后由 SAHI9099 于 2019-8-4 03:21 编辑
刚写好,你瞅瞅是不是你说的那种带标志位的,这样可以省略掉卡号,但是带卡号的也不需要给密码设置标志位啊,可以在卡号前缀里设置
|
密钥生成 | 文本型 | |
|
密钥长度 | 字节型 | | | |
混合密钥 | 逻辑型 | | | | 卡密类型 | 字节型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
temp | 字节集 | | |
k | 整数型 | | |
j | 整数型 | | |
temp =
取空白字节集 (密钥长度
)置随机数种子 ()
计次循环首 (密钥长度, k
)
判断 (k = 1
)

temp
[1
] =
取随机数 (50,
选择 (密钥长度 > 9, 57, 密钥长度 + 48
))


j = temp
[1
] - 48

输出调试文本 (“标志位地址:” +
到文本 (j
))

判断 (k = j
)

temp
[k
] = 48 + 卡密类型

输出调试文本 (“标志数值:” +
到文本 (temp
[k
] - 48
))


temp
[k
] =
多项选择 (选择 (混合密钥,
取随机数 (1, 3
), 1
),
取随机数 (48, 57
),
取随机数 (65, 90
),
取随机数 (97, 122
))


计次循环尾 ()返回 (到文本 (temp
))
作者: AP小塔 时间: 2019-8-4 08:58
66666666666666
作者: 外星星人 时间: 2019-8-4 13:37
支持分享 感谢开源
作者: 四叶草接单 时间: 2019-8-4 14:35
具体原理就跟条形码一样,条形码最后一位就是前面各个数字的加和验证位。这样做的作用是可以在对比密钥之前验证密钥是否有效密钥,验证位的算法自己随意选择就行了
作者: SAHI9099 时间: 2019-8-5 07:50
了解了,上次研究了一款单机游戏的仓库道具的字节组,原理也比较类似,利用二进制位,随机取两个字节并合并共有十六位,十位做效验,四位做标识,感觉可以秒杀很多的开源呢
作者: SAHI9099 时间: 2019-8-5 08:51
一个小东西引发的天坑。。那么问题来了,我该怎么自创效验算法嘞?莫非是要研究一遍密码学么?
作者: SAHI9099 时间: 2019-8-5 09:57
本帖最后由 SAHI9099 于 2019-8-5 10:00 编辑
哦了哦了
防伪验证 (密钥生成 (真, 1
))
返回 (0
) 变量名 | 类 型 | 静态 | 数组 | 备 注 |
密钥长度 | 字节型 | | |
temp | 字节集 | | |
k | 整数型 | | |
j | 整数型 | | |
a | 长整数型 | | |
密钥长度 = 32 - 1
temp =
取空白字节集 (密钥长度
)置随机数种子 ()
计次循环首 (密钥长度, k
)
判断 (k = 1
)

temp
[1
] =
取随机数 (50,
选择 (密钥长度 > 9, 57, 密钥长度 + 48
))


j = temp
[1
] - 48

输出调试文本 (“标志位地址:” +
到文本 (j
))

判断 (k = j
)

temp
[k
] = 48 + 卡密类型

输出调试文本 (“标志数值:” +
到文本 (temp
[k
] - 48
))


temp
[k
] =
多项选择 (选择 (混合密钥,
取随机数 (1, 3
), 1
),
取随机数 (48, 57
),
取随机数 (65, 90
),
取随机数 (97, 122
))
a = a + temp [k]
计次循环尾 ()
如果真 (a % 2 ≠ 0
)
a = a × 3
a = a % 10输出调试文本 (“密钥:” +
到文本 (a
) +
到文本 (temp
))
返回 (到文本 (a
) +
到文本 (temp
))
变量名 | 类 型 | 静态 | 数组 | 备 注 |
key | 字节集 | | |
i | 整数型 | | |
k | 整数型 | | |
效验值 | 字节型 | | |
如果 (删全部空 (密钥
) =
“”)
返回 (假)
key =
到字节集 (密钥
)
效验值 = key
[1
] - 48

key =
取字节集右边 (key,
取字节集长度 (key
) - 1
)
计次循环首 (取字节集长度 (key
), i
)k = k + key
[i
]
计次循环尾 ()
如果真 (k % 2 ≠ 0
)
k = k × 3
k = k % 10输出调试文本 (“正品密钥:” +
到文本 (k = 效验值
))
输出调试文本 (“标记数值:” +
字符 (key
[key
[1
] - 48
]))
返回 (k = 效验值
)
作者: 四叶草接单 时间: 2019-8-5 20:40
算法一大堆呀,最基本的就是加减乘除呀,然后就是进制转换啦,再想复杂点就md5,sha256等等编码,反正自己确定就行
作者: tellmesy 时间: 2019-10-20 16:16
看看了
作者: duisir 时间: 2021-5-5 15:55
66666666666666666666666666666666
作者: BIG牛肉面 时间: 2021-5-7 06:29
感谢分享,很给力!~
作者: zxc599 时间: 2021-5-7 06:42
刚好需要 学习了
欢迎光临 精易论坛 (https://125.confly.eu.org/) |
Powered by Discuz! X3.4 |