由于破解密码哈希已成为脚本小子的新消遣,我想到了这个问题并想出了一个新颖的(?)想法。
- 将通行证存储为偏移量+数字而不是哈希
- 这个数字是两个大素数的乘积
- 密码转换为数字,添加偏移量,并使用素数来划分数字。如果它除且除数是两个素数中较大的一个,则密码是正确的。
根据定义,每个哈希值都是唯一的,并且每个密码可以根据偏移量以多种不同方式进行哈希处理。打破一个哈希意味着你必须分解数字(这很难),然后找到一个对应于更大prime-offset(这是微不足道的)数字的单词。
要生成使用函数 f() 将密码转换为密码数字(不重要),请生成两个大于 2^4096 的随机素数,或者多少就足够了。取较大的素数并计算素数密码数=偏移量。将素数相乘得到“数字”。存储编号和偏移量。
去检查。使用函数 f() 将密码转换为密码数字,添加偏移量以查找素数。用素数除以得到另一个素数。检查第一个素数是否是两者中较大的一个。如果是这样,密码是正确的。
f() 可能是例如密码的 utf-8 编码,被理解为一个大的二进制整数。