我目前正在用 Python 编写一个密码破解程序,并正在考虑根据下载的单词列表搜索密码哈希字典的最佳策略。
诸如 rockyou 之类的密码列表是按照最常见的密码排序的,因此我最初的方法是按顺序搜索字典,以防我尝试破解的哈希对应于一个非常常见的密码,即在列表的顶部。但是,我认为对于不太常见的密码,这种线性搜索可能需要很长时间,因此我正在考虑实现二进制搜索。总体而言,这会更快,还是平均而言,线性搜索会更快(假设许多密码将位于列表顶部?)
对前 100 个左右的密码进行线性搜索,如果找不到则切换到二分搜索,这是否是一个明智的策略?
最佳答案
我完成此任务的方法与您首先检查最常用的密码相同。其大小将取决于数据库的大小,这里不会错过一些尝试和错误,因为正确的数字将取决于随 secret 码的程度。
对于完整搜索,我会搜索排序哈希值,因为这通常是最快的。
Why is processing a sorted array faster than processing an unsorted array?
关于python - 访问哈希密码字典平均最快的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60168389/