我用C++編寫了一個多線程程序,用蠻力算法破解7個字符長的密碼(僅限小寫字母)。多線程蠻力破解密碼算法
我的算法大多是7個嵌套for-loops從a到z並測試每種可能的組合。
現在,我將我的工作是這樣的:
如果我有3個工作線程,
線程1:axxxxxx到ixxxxxx
主題2:jxxxxxx到rxxxxxx
主題3:sxxxxxx到zxxxxxx
所以3個線程會繼續循環直到找到匹配。
主線程將等待第一個線程返回。
我的問題是:這是在我的線程之間劃分工作的最好方法嗎?你有什麼想法可以提高我的效率嗎?
另外,即使它不是我詢問的主要部分,你能想到比7 for循環迭代更好的方法嗎?
(請注意,此計劃是一所學校的項目,而不是爲了真正破解密碼)
*你能想到比7 for-loop迭代更好的方法嗎?*遞歸。 – AusCBloke 2012-03-19 03:44:39
一個確保更高效的方法是在GPU中進行。看看[oclHashcat-plus](http://hashcat.net/oclhashcat-plus/)。 – jweyrich 2012-03-19 03:55:51
@jweyrich:如果你想破解一個散列,那麼這是一個很好的解決方案,但是如果你必須實際嘗試登錄,那麼這個方法不是非常有用。 – 2012-03-19 04:07:41