有什么方法可以找到正在使用的加密/编码类型?
例如,我正在测试一个网络应用程序,它在数据库中以加密的格式存储密码(WeJcFMQ/8+8QJ/w0hHh+0g==
)。我如何确定使用的是什么散列或加密?
编辑:我刚刚注意到一个非常酷的脚本,名为hashID。这个名字几乎描述了它。
一般来说,利用经验来进行有根据的猜测是这些事情的方法。
这里有一个列表,有非常多的哈希输出,这样你就知道每个人的样子,并创建签名/图案或只是光学验证。
- [在线哈希破解哈希值生成器](https://www.onlinehashcrack.com/hash-generator.php)
- [InsidePro Software Forum > Hash Types](https://web.archive.org/web/20160403135857/https://forum.insidepro.com/viewtopic.php?t=8225) (via Archive.org)
有两个*主要的东西,你首先要注意。
- 哈希值的长度(每个哈希函数都有一个特定的输出长度)
- 使用的字母表(都是英文字母吗?数字0-9和A-F都是十六进制吗?有什么特殊字符吗?)
一些密码破解程序(例如John the ripper)在输入时应用一些模式匹配来猜测所使用的算法,但这只对一般的哈希值有效。例如,如果你采取任何哈希输出并将每个字母旋转1,大多数模式匹配方案将失败。