我们引入组织的系统没有使用我能找到的任何传统散列函数。我已被分配通过黑盒测试“批准”它。
我怀疑密码只是被混淆或加密(未散列),因为结果的长度随密码长度而变化(尽管似乎有一些最小值 - 也许是填充?)。
这是一些数据:
密码:结果 1:TG3432WB7VU= 11:r8ahLkJGWbY= 111:E7fXdNqEWAA= 11111111:FIcx3a00R4e GhFyHjD56qw== 1111111111:FIcx3a00R4e vxqEuQkZZtg== 2111111111:GPwnH80qEAC vxqEuQkZZtg==
结果显然是 base64,但不会解码为任何可读的。在我知道结果的长度发生变化之前,我尝试将解码后的字节视为 MD5 和其他散列函数,但这显然没有成功。现在我知道结果长度会发生变化,我正在考虑其他更糟糕的替代方案。值得注意的是上面的两个粗体部分:它们在两个不同的密码中是相同的。因此,要么每 8 个字节都被独立处理(为什么?),要么正在进行一些多字母替换(?)。
更新:
系统接受任何字符(包括 Unicode 字符)作为密码。将一个 3 字节字符重复 8 次确实会产生一个 24 字节长的“散列”。