Windows 95零售密钥格式为XXX-XXXXXXX。验证时需满足:
前三位不能为333、444、555、666、777、888或999;
后七位全部为0到8之间的数字,且其各位数字之和须能被7整除;
第四位不参与检查。
满足这些条件的密钥(例如 000-0000000)即为有效。
Windows 95 OEM密钥格式为 XXXXX-OEM-XXXXXXX-XXXXX。要求:
开头的3位数字在0到366范围内;
接下来的2位数字介于04到93之间;
随后的3个字符必须为“OEM”;
紧跟的7位数字之和必须是7的倍数;其它部分不做校验。
Windows XP零售密钥激活时需要使用安装 ID、产品 ID 和产品密钥。
安装 ID
为50位十进制数字,格式为多个6位数字组及最后2位数字(例如:XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XX)。
每次运行 msoobe.exe 时都会重新生成。
校验位
每组最后一位为校验码,由同组前5位相加、偶数位求和后再累加,最后取和除以7的余数得到。
解码与解密
去除校验位后,得到一个 41 位十进制编码的 136 位整数,以小端字节序存储为字节数组。安装 ID 中低16个字节经过加密(高1字节明文保存),使用专有的四轮 Feistel 密码加密,轮函数基于 SHA-1,密钥为4字节。一轮解密过程为:
L′ = R XOR First-8(SHA-1(L + Key))
R′ = L
最终,解密结果是16个明文字节,加上第17个未加密的字节(该字节随后按四字节小端格式解释为双字,后跟一个单字节)。