Delphi 如何使用并行计算技术制作bruteforce密码恢复软件

Delphi 如何使用并行计算技术制作bruteforce密码恢复软件,delphi,cluster-computing,parallel-processing,Delphi,Cluster Computing,Parallel Processing,如何在delphi中使用md5算法的并行计算技术制作bruteforce密码恢复软件 有人能告诉我一些建议吗 多亏了并行计算在当今时代是有意义的,因为我们的大多数CPU都有多核 但是,您的性能与线程数不是一对一的关系。您很可能只需要每个核心一到两个线程 您可以使用TThread类在Delphi中创建多个线程 在IdHashMessageDigest单元中具有MD5哈希函数 在尝试通过蛮力反转MD5哈希之前,请确保您知道确切的算法,包括any的使用 如果没有盐的使用,我想可能已经有了MD5在网络上

如何在delphi中使用md5算法的并行计算技术制作bruteforce密码恢复软件

有人能告诉我一些建议吗


多亏了

并行计算在当今时代是有意义的,因为我们的大多数CPU都有多核

但是,您的性能与线程数不是一对一的关系。您很可能只需要每个核心一到两个线程

您可以使用TThread类在Delphi中创建多个线程

在IdHashMessageDigest单元中具有MD5哈希函数

在尝试通过蛮力反转MD5哈希之前,请确保您知道确切的算法,包括any的使用

如果没有盐的使用,我想可能已经有了MD5在网络上,你可以在那里做一个搜索

在尝试各种可能性之前,你很可能想先尝试一下。互联网上有很多词典可以下载,在谷歌上很容易找到

有了更具体的问题,我们可以给出更具体的答案

编辑

要创建一个网格计算系统,将工作分配给多台计算机,您需要一个中央管理服务器,将工作分配给其他计算机。如果在某个时间阈值内没有返回结果,则将其放回队列中

您需要构建一个简单的框架,在这个框架中,您可以根据请求向每个客户机传递一些表示工作负载的参数。也许这是一系列值得尝试的价值观

客户机应该与服务器联系以接收一项工作,并且它总是在完成工作时报告,或者如果它成功了,可能会立即报告

如果你有足够的计算机,考虑每个客户为每个可能的盐建立一个本地彩虹表,利用每个客户的存储。 工作队列示例

下面是一个将作为参数发送的工作示例,很可能存储在数据库中

您想攻击哈希SLDFJIJ44adsf

以下是表格:

Hashes
----------------------------
TargetHash      Answer
----------------------------
SLDFJIJ44adsf   NULL   

Work
----------------------------
TargetHash      Type        RangeBegin      RangeEnd    DateAssigned
----------------------------
SLDFJIJ44adsf   Dictionary  aardvark        beaver      2011-12-16
SLDFJIJ44adsf   Dictionary  beavis          zoology     2011-12-16
SLDFJIJ44adsf   Brute       aaaa            ZZZZ        2011-12-16
SLDFJIJ44adsf   Brute       aaaaa           MZZZZ       2011-12-16

是的,您可以使用OmniThreadLibrary。@JamieHutton-不,不像这样,我的意思是它不支持多线程。我的意思是有超过十万台计算机,我的用户都知道,不用担心。有人有关于分布式网格系统的信息或链接吗?是一个实验性的计算机网格网络(P2P),用于蒙特卡罗模拟和随机算法。它是用Delphi编写的开源软件。不,不是这样的,我的意思是它没有多线程。我的意思是,有了数十万台计算机,你就可以编写一个分布式网格系统,当然。您将使用Indy和TThread。然而,还有比电脑更便宜的东西。游戏平台通常低于成本,因此您可以购买游戏,但具有强大的计算能力。试试Playstation 3s网络。别担心电脑的成本,我手上已经有十万台电脑了,但还没有找到关于internet上分布式网格系统的图书馆或教程链接:(我更新了我的答案,为您提供了一些有关网格系统的更基本的说明。祝您好运。您很可能希望使用数据库来跟踪工作。您需要将其划分为逻辑部分。我建议保持工作的小型化,但让返回的计算机经常一次下载更多的工作。