security - 字典攻击下密码弱吗

标签 security encryption dictionary passwords brute-force

谢谢你看。所有真诚有用的答案都被投票赞成。

我使用密码强度计让用户知道他们选择的密码有多强。但是这个密码检查器显然没有涵盖密码在字典攻击下有多弱。我该如何检查,是否值得?

此外,我的常规密码检查器最初在浏览器中使用 javascript 运行(无需传输)。如果我想检查字典攻击弱点,我必须将它传输到脚本。我的理解是我不应该清楚地传输它。

有人可以帮我解决这个问题。如何在字典攻击下检查密码是否安全,以及如何在传输到我的脚本之前对其进行加密?

额外信息:

为什么我认为除了常规密码表之外,我还需要字典攻击检查?正如你们中的一些人所指出的,用户可以选择像 P@ssword 或 Yellow12 这样的密码。但是我遇到的大多数密码强度检查器都会将此视为一个好的密码。至少我正在使用 Yet Another Password Meter确实如此(我实际上认为它是更好的密码检查器之一。)如果有人知道更强大的密码检查器,请提及它,但前提是您根据经验确定它更强大;)

但我的问题确实是:如何对密码进行字典攻击检查? 我在某处读到它是针对哈希完成的,但是我在哪里进行搜索?一旦我找到了如何去做,我就会决定是否值得。

感谢到目前为止提供帮助的所有人:)

最佳答案

意见会有所不同,有些人会说检查字典单词很重要。我不同意,而是赞成要求不同大小写的字母、数字和特殊字符,如 !@#$%^&*()_-=+。显然,密码应该区分大小写。

存在数字和特殊字符时,字典攻击不太可能成功。假设有 1000 个常用密码。现在添加一个必需的大写字母和特殊字符,让我们假设用户是“懒惰的”,他们选择将第一个字母大写并在末尾添加一个特殊字符。那本 1000 大小的字典现在已超过 30,000。

此外,应该有帐户锁定以避免字典攻击。并且可能会根据您的应用程序限制 IP 地址尝试登录的频率。

在运行脚本时,可能仍然存在避免使用一些非常常见的密码的情况。例如,我不允许使用密码 p@ssword 一词或密码的任何变体。

编辑:验证码,虽然被大多数人(包括我)讨厌,但在几次登录失败后也可能是合适的,以避免暴力登录尝试。

关于security - 字典攻击下密码弱吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1584159/

相关文章:

javascript - 将字典转换为保留字典键的数组

php - 在新数据库中安装表、字段和静态数据的标准方法是什么?

Python:字典数据结构的树状实现

javascript - 虚拟网络测试能否突破同源策略

java - (Java 到 Javascript)Nodejs Crypto Javascript 中的 javax.crypto.Cipher 等效代码

java - 面向人类的 JAAS

c# - 保存加密 key 的正确方法是什么?

java - 如果在 JDK 1.7 JVM 中禁用 ECC,将使用什么加密?

java - 给定一定范围的字符,生成一组的所有字符串?

windows - 防止以纯文本形式获取 IIS 物理路径凭据(使用 powershell)