【发布时间】:2012-09-05 16:31:01
【问题描述】:
在我回答实际问题之前,我想澄清一些事情,因为我知道“使用 javascript 暴力破解”在脱离上下文时听起来是多么荒谬:)。
我正在完成我的学士论文,我的目标是实现一个基于 Javascript 的概念验证哈希破解器。这个想法是这样工作的: 用户可以提交哈希值以及有关所使用算法的信息。 (其他)用户也可以点击网站上的按钮参与破解过程。 服务器的任务是接受提交的“订单”并将其拆分为范围,具体取决于可用工人的数量。然后将范围发送给单击所述按钮的客户。
我目前遇到两个大问题,即如何实际实现这个蛮力功能。 所以我现在的主要问题是,坦率地说,我还没有真正适应 Javascript。对于初学者,我只会使用硬编码字符集:字母数字、大小写字母,没有特殊字符。问题是老实说,我完全不知道如何实际实现尝试所有字符组合的功能,以及如何编程。我可以想象使用一个包含字符集的普通数组,然后是两个字符串。一个字符串将包含范围,另一个将包含尝试过的组合。所以我不得不以某种方式遍历 charset 数组,而字符串可能使用级联的 for 循环或其他东西,但我真的被“如何”的问题所困扰:)。我不希望你们中的任何人真正为我提供这样一个函数的完整源代码(除非你当然想要),但我真的很感激一些关于如何实现这样一个蛮力函数的提示或解释。在这一点上,我也不关心性能或优化编码,而是关心综合编码,或者你可能想要的任何东西:)
对不起,如果我对我的问题中的一些细节感到模糊。如果是这样,请告诉我,我当然会尝试进一步澄清。
【问题讨论】:
-
您可能会在 security.stackexchange.com 上得到更好的答案
-
hm 可能是真的,谢谢 - 我还没有仔细查看这里的 stackexchange 平台中有哪些论坛 :)。我会在那里重新发布,但我希望如果我把这个问题留在这里也没关系,看看会发生什么。
-
第二个问题应该在它自己的页面上 - 只需从这里删除它。如果您想知道应该通过哪些可能性,请在安全论坛中询问。如果您知道应该生成哪些词,但不知道如何生成,请告诉我们是哪些词。
-
好的,我把第二个问题的部分拿出来了。 “应该生成哪些单词”是什么意思?我一般都知道蛮力是如何工作的:基本上是尝试从给定字符集中获取的所有可能的字符组合。我的问题是我不知道如何在编程方面实现这一点,就“我可以使用哪些流程/动作来执行此任务”而言。
标签: javascript hash brute-force cracking