yhreim:
我很好奇密码的生成过程,这是我问deepseek-r1的结果:
此密码生成流程分5步:
**1. 输入拼接**
将MathID与激活密钥组合为字符串:`str = MathID + "$1&" + ActivationKey`
**2. 逆向哈希处理**
用自定义函数`f1`逆序遍历字符串:
- 初始哈希值 `0xA439 + 常数0x105C3`
- 生成中间哈希 `hash`
**3. 暴力搜索n1**
在0-65535间找满足以下条件的16位整数n1:
`f1(f1(hash, n1低8位, 0x105C3), n1高8位, 0x105C3) == 0xA5B6`
找到后:
`n1 = ((n1+0x72FA)&0xFFFF)*99999/65535 → 转为5位数n1str`
**4. 二次哈希计算**
重组n1str并缩放,再用新常数0x1064B和相同字符串反算temp值
**5. 生成n2及拼接密码**
二次暴力搜索n2满足类似条件
最终密码格式:`第3位n2+第3位n1+第1位n1+第0位n1 - 第4位n2+第2位n1+第0位n2 - 第2位n2+第4位n1+第1位n2::1`
例:`5xx0-x6x-7x8::1`
*核心原理*:通过两次不可逆哈希迭代+暴力搜索验证值,最后进行字符位重组。密钥空间依赖65536次暴力破解。