How to Create Strong Passwords: Complete Security Guide
· 10 min read
什么是强密码:长度与复杂度的较量
在数字时代,密码是保护我们在线身份和数据的第一道防线。但什么才算是一个真正强大的密码?这个问题的答案比大多数人想象的要复杂得多。
传统上,许多人认为强密码必须包含大小写字母、数字和特殊字符的复杂组合。虽然这种复杂性确实有其价值,但现代密码学研究表明,密码长度往往比复杂度更重要。
长度的力量
一个12字符的纯小写字母密码(如"correcthorsebatterystaple")比一个8字符的复杂密码(如"P@ssw0rd")要安全得多。原因在于数学:
- 8字符复杂密码(大小写字母、数字、符号,约95个可能字符):95^8 ≈ 6.6 × 10^15 种可能组合
- 12字符纯小写密码(26个字母):26^12 ≈ 9.5 × 10^16 种可能组合
更长的密码提供了更大的搜索空间,使得暴力破解攻击变得不切实际。每增加一个字符,可能的组合数量就会呈指数级增长。
复杂度的作用
虽然长度是关键,但复杂度仍然重要。复杂度通过增加字符集大小来增强密码强度:
- 仅小写字母:26个字符
- 大小写字母:52个字符
- 字母+数字:62个字符
- 字母+数字+符号:约95个字符
理想的密码策略是结合长度和复杂度。一个16字符的密码,包含大小写字母、数字和符号,几乎是不可破解的。
可记忆性因素
然而,密码安全性的一个关键方面常被忽视:可记忆性。一个极其复杂但无法记住的密码会导致用户将其写下来或重复使用,这反而降低了安全性。这就是为什么密码短语(稍后详述)变得越来越受欢迎——它们提供了长度、合理的复杂度和可记忆性的平衡。
密码熵:衡量密码强度的科学方法
密码熵是一个信息论概念,用于量化密码的不可预测性。它以比特为单位测量,熵值越高,密码越强。
熵的计算
密码熵的基本公式是:
熵(比特) = log2(可能组合数)
= 密码长度 × log2(字符集大小)
让我们通过几个实际例子来理解这个概念:
示例1:简单数字PIN码
密码: "1234"
字符集: 10个数字(0-9)
长度: 4个字符
可能组合: 10^4 = 10,000
熵: log2(10,000) ≈ 13.3比特
这是一个非常弱的密码,可以在几秒钟内被破解。
示例2:常见密码
密码: "Password1"
字符集: 62个字符(大小写字母+数字)
长度: 9个字符
理论熵: 9 × log2(62) ≈ 53.6比特
实际熵: 约28比特(因为是常见模式)
虽然理论上有一定强度,但由于这是一个常见模式,实际熵要低得多。
示例3:随机强密码
密码: "7mK#9pL@2nQ$5"
字符集: 95个字符(大小写字母+数字+符号)
长度: 13个字符
熵: 13 × log2(95) ≈ 85.7比特
这是一个非常强的密码,需要数千年才能破解。
示例4:密码短语
密码: "correct-horse-battery-staple"
使用Diceware方法(7776个单词列表)
4个单词
熵: 4 × log2(7776) ≈ 51.7比特
这个密码短语既强大又容易记忆。
熵的实际意义
安全专家通常建议不同场景下的最小熵值:
- 40-50比特:适用于低风险账户(论坛、新闻网站)
- 60-70比特:适用于中等风险账户(社交媒体、购物网站)
- 80比特以上:适用于高风险账户(银行、电子邮件、密码管理器主密码)
- 128比特以上:适用于加密密钥和极高安全需求
重要的是要理解,熵只是理论强度。如果密码基于字典单词、个人信息或常见模式,实际强度会大大降低。
常见的密码错误
即使了解了强密码的原则,许多用户仍然会犯一些常见错误,严重削弱他们的账户安全性。
1. 密码重复使用
这是最危险的密码错误。当你在多个网站使用相同的密码时,一个网站的数据泄露就会危及你所有的账户。
为什么这很危险:
- 数据泄露频繁发生——每年有数十亿条记录被泄露
- 攻击者使用"凭证填充"攻击,在多个网站尝试泄露的用户名/密码组合
- 一个低安全性网站的泄露可能危及你的银行账户
实际建议:为每个重要账户使用唯一的密码。使用密码管理器来管理这些密码。
2. 使用字典单词
使用单个字典单词或简单的单词组合使密码容易受到字典攻击。
弱密码示例:
- "sunshine"
- "password"
- "welcome"
- "dragon"
- "monkey"
即使添加数字或符号也不够:
- "sunshine1"
- "password!"
- "welcome2023"
攻击者使用包含数百万个单词、常见替换和模式的字典。
3. 包含个人信息
使用个人信息使密码容易被猜测,特别是在社交工程攻击中。
避免使用:
- 你的名字或家人的名字
- 生日或纪念日
- 宠物的名字
- 电话号码
- 地址或城市
- 公司名称
- 喜欢的运动队或乐队
在社交媒体时代,这些信息通常很容易获得。
4. 简单的键盘模式
键盘上的模式看起来很随机,但实际上很容易被破解:
- "qwerty"或"asdfgh"
- "123456"或"654321"
- "qazwsx"
- "1qaz2wsx"
密码破解工具专门检查这些模式。
5. 最小长度密码
仅满足最低要求(通常是8个字符)会创建弱密码。如果网站要求8个字符,使用12个或更多。
6. 可预测的替换
常见的字符替换不会显著增加安全性:
- "P@ssw0rd"(用@替换a,用0替换o)
- "M1ch@el"(用1替换i,用@替换a)
- "S3cur1ty!"(用3替换e,用1替换i)
这些替换模式在密码破解字典中很常见。
7. 将密码写下来(不安全地)
虽然将密码写在纸上并安全存储比重复使用弱密码要好,但这带来了物理安全风险。如果你必须写下密码:
- 将它们存放在安全的地方(保险箱)
- 不要标记它们是什么
- 考虑写下提示而不是实际密码
- 更好的是,使用密码管理器
8. 不更新泄露的密码
当服务通知你数据泄露时,立即更改密码至关重要。许多用户忽视这些警告,使他们的账户容易受到攻击。
9. 在不安全的设备上使用密码
在公共计算机、不安全的Wi-Fi网络或可能有键盘记录器的设备上输入密码会危及即使是最强的密码。
10. 与他人共享密码
共享密码,即使是与信任的人,也会增加风险。如果你必须共享访问权限:
- 使用服务的内置共享功能
- 使用密码管理器的安全共享功能
- 之后更改密码
- 考虑创建单独的账户
密码长度建议对照表
下表提供了基于长度和复杂度的密码强度指南,以及破解每种类型密码所需的估计时间(假设每秒100亿次尝试,这是现代GPU的合理速度)。
| 长度 | 仅小写字母 | 大小写字母+数字 | 大小写字母+数字+符号 | 推荐用途 |
|---|---|---|---|---|
| 8字符 |
可能组合: 2.1 × 10^11 破解时间: 21秒 熵: ~37.6比特 弱 |
可能组合: 2.2 × 10^14 破解时间: 6小时 熵: ~47.6比特 中等 |
可能组合: 6.6 × 10^15 破解时间: 7.6天 熵: ~52.4比特 中等 |
不推荐用于任何重要账户。许多系统的最低要求,但不够安全。 |
| 12字符 |
可能组合: 9.5 × 10^16 破解时间: 110天 熵: ~56.4比特 中等 |
可能组合: 3.2 × 10^21 破解时间: 10,000年 熵: ~71.4比特 强 |
可能组合: 4.8 × 10^23 破解时间: 150万年 熵: ~78.8比特 强 |
适用于大多数在线账户(电子邮件、社交媒体、购物)。最低推荐长度。 |
| 16字符 |
可能组合: 4.4 × 10^22 破解时间: 14万年 熵: ~75.2比特 强 |
可能组合: 4.8 × 10^28 破解时间: 1.5 × 10^11年 熵: ~95.2比特 非常强 |
可能组合: 3.2 × 10^31 破解时间: 1.0 × 10^14年 熵: ~105.0比特 非常强 |
推荐用于高价值账户(银行、投资、主电子邮件)。密码管理器主密码的良好长度。 |
| 20字符 |
可能组合: 2.0 × 10^28 破解时间: 6400万年 熵: ~94.0比特 非常强 |
可能组合: 7.0 × 10^35 破解时间: 2.2 × 10^18年 熵: ~119.0比特 极强 |
可能组合: 2.3 × 10^39 破解时间: 7.4 × 10^21年 熵: ~131.0比特 极强 |
推荐用于密码管理器主密码、加密密钥和最高安全需求。对于大多数用途来说是过度的,但提供了最大的安全性。 |
关键要点
- 最低标准:对于任何重要账户,使用至少12个字符
- 推荐标准:对于高价值账户,使用16个字符
- 密码管理器主密码:使用至少16-20个字符
- 复杂度很重要:但长度更重要——一个16字符的纯小写密码比一个8字符的复杂密码更强
- 实际考虑:使用密码管理器生成和存储长而复杂的密码
特殊情况
某些情况需要不同的方法:
- PIN码:如果限制为4-6位数字,启用账户锁定和双因素认证
- 旧系统:一些旧系统限制密码长度;在这些情况下,最大化复杂度并启用额外的安全措施
- 必须记住的密码:使用密码短语方法(见下一节)来平衡安全性和可记忆性
密码短语方法:Diceware技术
密码短语是一种创建强大且可记忆的密码的方法。Diceware方法是生成真正随机密码短语的最流行和最安全的技术之一。
什么是Diceware?
Diceware是由Arnold Reinhold在1995年创建的一种方法,用于生成密码短语。它使用普通骰子和一个特殊的单词列表来创建随机但可记忆的密码。
Diceware单词列表包含7,776个单词(6^5 = 7,776),每个单词对应一个五位数字序列(从11111到66666)。
如何使用Diceware
基本过程:
- 获取材料:
- 至少一个六面骰子(使用多个骰子更快)
- Diceware单词列表(可在线免费获取)
- 纸和笔
- 掷骰子:
- 掷骰子五次以生成一个五位数字
- 记录每次掷骰的结果
- 例如:4, 2, 6, 1, 3 = 42613
- 查找单词:
- 在Diceware列表中找到对应的单词
- 例如:42613可能对应"mountain"
- 重复:
- 重复此过程4-6次
- 每个单词增加约12.9比特的熵
- 组合单词:
- 将单词用空格、连字符或其他字符连接
- 例如:"mountain-river-cloud-forest"
Diceware密码短语示例
4个单词密码短语:
"correct horse battery staple"
熵: 51.7比特
长度: 28个字符(含空格)
强度: 适用于大多数账户
5个单词密码短语:
"winter-garden-purple-music-laptop"
熵: 64.6比特
长度: 35个字符
强度: 适用于高价值账户
6个单词密码短语:
"cloud.river.mountain.forest.ocean.desert"
熵: 77.5比特
长度: 42个字符
强度: 适用于密码管理器主密码
增强Diceware密码短语
你可以通过以下方式进一步增强Diceware密码短语:
- 添加数字:在开头或结尾添加随机数字
- 大写:随机大写某些字母
- 特殊字符:使用符号作为分隔符
- 额外的单词:添加更多单词以增加熵
示例增强:
基本: "mountain river cloud forest"
增强: "Mountain-River-Cloud-Forest-2024!"
数字Diceware替代方案
如果你没有物理骰子,可以使用:
- 在线Diceware生成器:使用加密安全的随机数生成器的网站
- 密码管理器:许多密码管理器内置了密码短语生成器
- 命令行工具:用于技术用户的脚本和程序
但是,物理骰子提供了真正的随机性,不依赖于计算机的随机数生成器。
Diceware的优势
- 真正的随机性:物理骰子提供真正的随机性
- 可记忆性:单词比随机字符更容易记住
- 强大的安全性:足够的单词提供了极好的熵
- 可验证性:该方法是透明和可审计的
- 无技术依赖:不需要计算机或软件
何时使用Diceware
Diceware密码短语特别适合:
- 密码管理器主密码
- 加密密钥
- 你需要经常输入的密码
- 你无法使用密码管理器的情况
- 需要最高安全性的账户
实用技巧
- 使用至少5个单词以获得良好的安全性
- 为密码管理器主密码使用6-7个单词
- 创建一个记忆故事来帮助记住单词
- 定期练习输入密码短语以建立肌肉记忆
- 将密码短语安全地写下来,直到你记住它
密码管理器:为什么需要以及如何使用
密码管理器是现代密码安全的基石。它们解决了创建和记住数十个或数百个唯一强密码的不可能任务。
为什么需要密码管理器
1. 人类记忆的局限性
普通人有70-100个在线账户。记住每个账户的唯一强密码是不可能的。没有密码管理器,人们会:
- 重复使用密码(主要安全风险)
- 使用弱的、可记忆的密码
- 将密码写在不安全的地方
- 使用可预测的模式
2. 增强的安全性
密码管理器使你能够:
- 为每个账户使用唯一的密码
- 生成真正随机的强密码
- 使用极长的密码(20+字符)而不需要记住它们
- 快速更改泄露的密码
3. 便利性
密码管理器提供:
- 自动填充登录表单
- 跨设备同步
- 安全的密码共享
- 组织和搜索功能
- 安全笔记存储
4. 防止网络钓鱼
密码管理器只会在正确的域上自动填充密码,帮助防止网络钓鱼攻击。如果你的密码管理器没有自动填充,这可能是一个警告信号。
密码管理器的工作原理
密码管理器使用强加密来保护你的密码:
- 主密码:你创建一个强主密码(唯一需要记住的密码)
- 加密:你的所有密码都使用主密码派生的密钥进行加密
- 存储:加密的密码存储在本地或云端
- 解密:当你输入主密码时,密码管理器解密你的密码
- 零知识:好的密码管理器使用零知识架构——即使是服务提供商也无法访问你的密码
选择密码管理器
流行的选项包括:
云端密码管理器:
- 1Password:用户友好,强大的功能,家庭计划
Frequently Asked Questions
How long should my password be?
At minimum 12 characters, ideally 16+. Each additional character exponentially increases cracking time. A 16-character password with mixed characters would take billions of years to brute force.
Are passphrases better than passwords?
Yes. A passphrase like "correct-horse-battery-staple" is both stronger and easier to remember than "P@ssw0rd!". Four random words give about 44 bits of entropy, comparable to a random 8-character password.
Should I use a password manager?
Absolutely. Password managers generate unique strong passwords for every account and store them securely. You only need to remember one master password. Popular options include Bitwarden (free), 1Password, and KeePass.
Is two-factor authentication really necessary?
Yes. Even if your password is compromised, 2FA prevents unauthorized access. Use authenticator apps (TOTP) over SMS when possible, as SMS can be intercepted via SIM swapping.
How do I know if my password has been leaked?
Check haveibeenpwned.com. Enter your email to see if it appeared in known data breaches. The site also offers a password checker that uses k-anonymity to safely check without exposing your password.
Related Tools