English 中文(简体)
采用多种读物来改写强势密码
原标题:Using multiple threads to bruteforce passwords

我在我10年级科学博览会项目上工作,现在,我打上了围墙。 我的项目正在测试平行主义对二元逼迫5号密码轮.的效率的影响。 我正在计算密码的编号/秒,以了解其使用1,416,32,64,128,512和1024条透镜的效率。 我不敢肯定,我是否真的 do强或纯粹的武力。 我的印象是,词典比较容易平行;只是把清单分成每个线上的平等部分。 我没有写许多法典;在我开始编码之前,我只是试图规划。

我的问题是:

  • 计算密码组合是否测试了根据校对标准确定业绩的最佳方法?

  • 理论力量或纯粹的武力? 如果说是纯粹的特遣部队,那么你如何将任务分成数量可变的深层?

  • 任何其他建议?

最佳回答

我不想削弱你的热情,但这已经是一个众所周知的问题。 我试图解释以下期望。 但是,或许最好在另一个领域开展你的项目。 怎么说“5百万分之四”,那么你就只能看透镜。

我认为,在你撰写项目时,你需要就平行处理何时合适以及何时进行。

每次万国邮联改变另一条路面时,它必须坚持目前已经成熟的背景,并装上新的线。 这种间接费用没有在单一翻新过程中发生(除垃圾收集等有管理的服务外)。 因此,除别的以外,由于必须承担原工作量,再加上所有情况变化,因此,加起来的read子就能够提高业绩。

但是,如果你掌握了多个CPU(核心),每家CPU就会形成一对一线,意味着你可以在不承担环境变化费用的情况下将计算结果相平行。 如果你比万国邮联更接近,那么环境转变将成为一个问题。

计算分为两类:IO-约束和计算。 采用国际交易日志的计算方法可以花费大量的CPU周期,等待像网络卡或硬盘这样的一些硬件的回复。 由于这一间接费用,你可以把胎面数目增加到万国邮联再次达到顶点,从而可以取消环境变化的成本。 然而,对校对数目有限制,此后,环境改变占用的时间将超过宇宙航行组织被封锁的深层。

严格限定的计算只是要求万国邮联有时间进行数字计算。 这是密码快车使用的计算方法。 大量行动没有被阻止,因此,与万国邮联相比,增加的深线将放慢你的总体投入。

C# ThreadPool 你们已经关心所有这一切——你只是补充任务,直到有路面。 新 只有在read子被阻断时,才能建立read。 这样,环境变化就最小化了。

I have a quad-core machine - breaking the problem into 4 threads, each executing on its own core, will be more or less as fast as my machine can brute force passwords.

为了与这一问题严重平行,你再次需要许多万国邮联。 I veread about ,using the GPU of agrams/a> to attacks this problem.

对攻击病媒的分析,我撰写了here。 如果有人使用的话。 彩虹表格和加工商/中间商交易将成为另一个令人感兴趣的领域,在其中开展一个项目。

问题回答

To answer your question: 1) There is nothing like the best way to test thread performance. Different problems scale differently with threads, depending on how independent each operation in the target problem is. So you can try the dictionary thing. But, when you analyse the results, the results that you get might not be applicable on all problems. One very popular example however, is that people try a shared counter, where the counter is increased by a fixed number of times by each thread.

2) 布鲁特部队将处理大量案件。 事实上,通过强硬力量,可以有一定数量的可能性。 因此,你可能不得不限制您的口号,例如密码的最长期限等等。 分配新力量的一种方式是,给每个方面分配不同的起始性。 然后,对所有这些开端的密码进行测试。 一旦工作结束,它就具有另一个起点,直到你使用所有可能的起点。

3) 我愿向您提出的一项建议是,在稍微少的深层进行检测。 你们有1024条read。 这不是一个好的想法。 机器上的核心数量一般为4至10个。 因此,试图以比核心数目大得多的距离超过深层。 因此,加工商不能同时操作多个深层。 在任何特定时间,其一对每个加工商。 相反,试图衡量不同计划如何将问题分配给不同的深层。

让我知道这是否有助于!

一种解决办法是采用一种办法,将工作分成单位。 有一个共同的目标,负责将问题分为工作单位——理想的情况是,每工作100至5秒——并提及你开始的每一条。 每一镜子在一只 lo子里运行:

for work_block in work_block_generator.get():
  for item in work_block:
    # Do work

这比把整个工作空间简单地排入每read一层楼面的好处是,如果一个read子比其他read子更快地工作,那么它就会从工作上跳出,而只是坐一片——它会占用更多的chu。

理想的情况是,贵方的工作项目生成者将有一个接口,在接获时,该接口将回复到一台自动发送器,该机本身将回复单个密码进行测试。 那么,以字典为基础的字典从字典中挑选出一定范围,而精通的力量则选择一种预设办法,以测试每批量。 当然,你需要使用同步价格,以阻止试图打消工作单位的不同距离之间的种族。

In both the dictionary and brute force methods, the problem is Embarrassingly Parallel. To divide the problem for brute force with n threads, just say, the first two (or three) letters (the "prefix") into n pieces. Then, each thread has a set of assigned prefixes, like "aa - fz" where it is responsible only for testing everything that follows its prefixes.

在实践中,理论通常比较好,以压制更多的密码,但精通的力量,因为它涵盖一切,不能在目标期限内错过密码。





相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签