问题标签 [brute-force]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
security - 您应该允许多少次失败的登录尝试 - 以及在多长时间内?
为了防止对登录系统的暴力攻击,您应该允许多少次失败的登录尝试 - 以及在多长时间内?
“锁定帐户”是什么意思 - 只是不允许他们登录(即使密码很好)?
algorithm - 选择对暴力攻击更具弹性的密码
为了增加蛮力攻击成功所需的尝试次数,最好选择不仅长而且还偏重于较高值的数字字符和接近字母表末尾的字母字符的密码?
还是蛮力攻击经常使用不增加(大约)字母数字的算法?
jsf - j_security_check 与程序安全性
我正在使用 jsf、ejbs 和 jpa 构建一个 Web 应用程序。我目前使用基于表单的 j_security_check 来处理身份验证。
我需要实现对 cookie 的支持,即“记住我”选项。我也想防止暴力攻击。即在 5 次登录失败后锁定某个用户。
我知道另一个选择是使用 ServletFilters 等以编程方式进行。
有没有办法使用 j_security_check 来实现所有这些?还是我应该切换回以编程方式进行?
algorithm - 锁定数据 x 天
是否有一种(简单的)方法来加密数据,以便解密它需要一定数量的 cpu 小时?也许是一系列具有短密钥长度的加密、一个可变的单向函数或任何东西?
它可能没有多大用处,但是如何调用这种加密方案并且有工具吗?
编辑:
为了使蛮力中断时间没有变化的结果,我不应该使用多轮和异或反馈吗?
我刚刚想出了这个算法(对于具有相等值和密钥长度的对称分组密码)......也许这是无意义的
与 random-block-1 的 xor 操作将在那里,因此解锁例程必须先找到 random-block-1,然后才能开始对 lock-output-2 进行暴力破解。
lock-output-1 + lock-output-2 .. lock-output-N 将是完整的锁定输出。当解锁例程发现 N 个密钥块在所有锁定输出块上每个都为零时,它可以将 N 个密钥块作为一个整体来解密实际数据。
然后,我还需要一个公式来计算多少轮数会产生最大变化,例如所需 CPU 小时数的 10%。
我想那里一定存在一个类似的算法。
c - 将多线程添加到这个简单算法的有效方法是什么?
我想说我在 C 方面的知识是公平的,我希望扩展一个程序来增强我对并行编程的了解。
它本质上是我所指的程序是一个蛮力生成器,通过密码递增,例如从 0000 .. 特定字符集的 zzzz: 需要 crypt(3) 的蛮力代码帮助
该算法概述如下(归功于 Jerome)
您会以何种合乎逻辑的方式说这可以通过多线程来扩展?
CUDA 是一个愚蠢但简单的解决方案。我听说过 OpenMP,在我的书中它看起来像是一个很好的解决方案,您认为如何将其拆分以受益于我的计算机的多个内核?即核心 1 计算 aaaa..ffff,核心 2 计算 ffff...zzzz,这是唯一有意义的方法吗?
c - 计算给定字符集的所有组合,以进行蛮力匹配?
在练习多线程时,我希望简单地构建一个可以计算字符集的所有可能组合(即暴力破解/匹配)并在线程之间分配工作的应用程序,以便真正测量并亲眼看到线程如何影响算法在不同系统上的时间。
到目前为止,计算这个的算法对我来说是一个很大的挑战。在最近的一个线程上(向这个简单的算法添加多线程的有效方法是什么?)我似乎明白了我需要做的事情(轻松传递每个字符范围的特定部分来分配工作),尽管该算法根本不起作用,而且我对复杂性的理解不足以在我的应用程序中修复它。
以一种简单的迭代方式,我如何计算给定字符集的每个组合,具有特定长度(即长度为 5?)
例如:
我将非常感谢能减轻一些在找到正确概念时的压力。
algorithm - 详尽搜索 Big-O
我目前正在做一些修改,特别是对 Big-O 表示法。我问了一个类似的问题(处理不同的算法),但我仍然不确定我是否走对了。
我正在研究的算法是穷举搜索(我相信又名蛮力),看起来像这样:
到目前为止,我得出的结果是这个算法O(n)
- 这是正确的吗?我怀疑它是,并且很想知道如何解决它;要查找什么,我每次“计数”的确切内容是什么,等等。我知道需要计算发生的操作数量,但这就是我需要注意/计算的全部吗?
编辑:我了解到这个算法实际上是O((n-1)!)
- 这是正确的,如果是这样,这个解决方案是如何产生的,因为我无法解决?
c - ASLR 暴力破解
为了练习,我一直在尝试在我的机器上强制执行 ASLR 实现。首先,我确保 ASLR 已打开。
我使用的机器是:-
我的程序很简单,如下。
为了利用这一点,我创建了一个环境变量,如下所示。正如你所看到的,它有一个非常大的 nop 雪橇,带有用于反向 shell 的漏洞利用代码。
我使用以下 C 程序找出环境变量的地址:
我得到的地址为0xbfefadfd
。
我发现溢出返回地址需要76 bytes of something
+ 4 bytes of the return address
。所以,为了蛮力我这样做: -
正如预期的那样,我得到了分段错误的日志,但是,即使在运行程序大约 30 分钟后,我也没有得到反向 shell。我在这里做错了什么?
android - 忘记 Keystore 密码,考虑暴力检测。它会破坏密钥库吗?
我最近意识到我丢失了密钥库的密码(或者密钥库可能以某种方式损坏)
它一直给我错误:密钥库被篡改或密码不正确
我创建了一个(相当未优化的)算法来暴力破解密码,让它整夜运行。但是,我不确定有多少不成功的密码尝试会锁定密钥库。
有谁知道这样的事情?
更新
我设计的算法工作正常(我正在使用Java),但我意识到通常情况下,密钥库工具仅在我按下回车时才要求输入密码。但为了让蛮力工作,我希望它有一个开关并在同一行接受密码。可能吗?
algorithm - 蛮力解决棋盘游戏的数据库
几年前,研究人员宣布他们已经完成了一个针对跳棋的蛮力综合解决方案。
我对另一个应该有更少状态的类似游戏很感兴趣,但是在任何合理的时间范围内运行完整的求解器仍然是不切实际的。我仍然想尝试一下,因为即使是部分解决方案也可以提供有价值的信息。
从概念上讲,我希望拥有一个包含每个已知位置以及后续位置的游戏状态数据库。一个或多个客户端可以从数据库中获取未探索的状态,计算可能的移动,并将新状态插入到数据库中。一旦找到一个残局状态,所有导致它的状态都可以用极小极大信息更新以构建决策树。如果做出明智的决定来选择可能的分支进行探索,我可以为最重要的分支构建信息,然后随着时间的推移逐渐构建完成。
忽略这个想法的优点或可行性,实现这样一个数据库的最佳方法是什么?我在 sql server 中制作了一个快速原型,该原型存储了每个状态的字符串表示形式。它有效,但我的求解器客户端运行非常缓慢,因为它一次输出一个状态并计算所有移动。我觉得我需要在内存中做更大的块,但是搜索空间肯定太大了,无法一次将它们全部存储在内存中。
有没有更适合这种工作的数据库系统?我将进行许多插入、大量读取(以检查状态(或等效状态)是否已经存在)以及很少的更新。
另外,我怎样才能并行化它,以便许多客户可以解决不同的分支而不会重复太多工作。我正在考虑类似于检查分配,生成几百万个状态并将其提交回以集成到主数据库中的程序。我只是不确定这样的事情是否会很好地工作,或者是否有以前的工作方法来做这种事情。