什么让密码变得强大

密码的强度取决于攻击者需要猜测的次数。这个次数由长度和真正的随机性决定,而不是像用 @ 代替 a 这样的小聪明。

柔和光线下,书桌上一把锁着的挂锁,旁边是一台笔记本电脑和几颗骰子
柔和光线下,书桌上一把锁着的挂锁,旁边是一台笔记本电脑和几颗骰子

熵:计算猜测次数

密码强度以熵的比特数衡量。从 N 种可能中随机选出的密码有 log2(N) 比特,每多一比特,攻击者的工作量就翻倍。从 94 个可打印字符中随机选出的 12 位密码约有 79 比特。关键在于随机二字:人自己选的密码,比如名字加年份再加感叹号,比特数远少于长度所暗示的,因为攻击者会优先尝试这些模式。

Diceware 和密码短语

1995 年,Arnold Reinhold 发布了 diceware:掷五颗骰子从 7776 个单词的列表中选一个词,然后重复。每个单词约增加 12.9 比特,所以六个单词约有 77 比特,而且仍然容易输入。电子前哨基金会(EFF)在 2016 年发布了改进的单词列表,本生成器使用其大列表。这个想法因 2011 年的一幅漫画而闻名,漫画把 correct horse battery staple 与难记却很弱的 Tr0ub4dor&3 做了对比。

指南怎么说

NIST 数字身份指南(SP 800-63B)更看重长度而非组成规则:允许长密码和密码短语,用泄露密码列表检查新密码,没有理由时不要强制定期更换。强制的复杂度规则大多导致可预测的模式。长度加上真正的随机性,以及每个网站使用不同的密码,重要得多。

攻击者猜测有多快

网站被攻破后,攻击者会针对被盗的哈希值进行离线猜测。使用快速哈希和现代显卡,每秒可达数十亿次,这正是这里显示的破解时间所依据的假设。bcrypt 或 Argon2 等慢速哈希会大大降低这一速度,但你无法知道网站使用的是什么。目标至少 70 到 80 比特,每个网站使用唯一密码,使用密码管理器并开启双重身份验证。

常见问题

密码应该多长?

对于包含字母、数字和符号的随机密码,16 位或以上可超过 100 比特。密码短语至少使用 5 到 6 个随机单词。增加长度是提升强度最简单的方法。

P@ssw0rd 这样的替换够强吗?

不够。攻击者熟悉常见替换并会自动尝试,所以几乎没有帮助。让密码变强的是真正的随机性。

应该定期更换密码吗?

现行指南认为不需要,除非有泄露等原因。频繁强制更换往往会产生更弱、更可预测的密码。请使用唯一的密码,并在可能泄露时更换。

准备好尝试了吗?

在浏览器中打开 PictorX — 无需安装,无需信用卡即可启动。

打开密码生成器