【发布时间】:2012-03-19 03:42:05
【问题描述】:
我用 C++ 编写了一个多线程程序,使用蛮力算法破解 7 个字符长(仅限小写字符)的密码。
我的算法主要是 7 个嵌套的 for 循环,从 a 到 z 并测试所有可能的组合。
现在,我是这样分配工作的:
如果我有 3 个工作线程,
话题 1:axxxxxx 到 ixxxxxx
线程 2:jxxxxxx 到 rxxxxxx
线程 3:sxxxxxx 到 zxxxxxx
因此 3 个线程将继续循环,直到找到匹配项。
主线程将等待第一个线程返回。
我的问题是:这是在我的线程之间划分工作的最佳方式吗?你知道如何提高效率吗?
另外,即使这不是我审问的主要部分,你能想出比 7 for-loop 迭代更好的方法吗?
(请注意,此程序是针对学校项目,并非真正破解密码)
【问题讨论】:
-
你能想出比7 for-loop迭代更好的方法吗?递归。
-
提高效率的一个可靠方法是在 GPU 中进行。看oclHashcat-plus。
-
@jweyrich:如果您尝试破解哈希,这是一个很好的解决方案,但如果您必须实际尝试登录,则不是很有用。
标签: c++ multithreading algorithm brute-force