norito
压缩图片压缩到指定文件大小
占位图生成器自定义尺寸的占位图片
去除背景从照片中抠出人像
Resize ImageChange width and height, exact or by percentage
Image ConverterConvert between JPG, PNG, and WebP
Crop ImageDrag a box to crop, free-form or locked ratio
Remove MetadataStrip EXIF, GPS, and camera info
Watermark ImageAdd a text watermark with live preview
测试文件生成器任意大小的精确测试文件
JSON 格式化格式化、校验、压缩
Markdown 编辑器实时预览,导出为 .md/.html
UUID GeneratorBulk random UUID v4 identifiers
Base64 Encode / DecodeText to and from Base64, UTF-8 safe
Hash GeneratorMD5, SHA-1, SHA-256, SHA-512
Timestamp ConverterUnix time to date, both ways
JSON DiffCompare two JSON documents
JWT DecoderDecode a JWT's header and payload
Regex TesterTest a regex with live match highlighting
CSV to JSONConvert a CSV file into JSON
CSV ViewerView and edit a CSV as a table
URL Encoder / DecoderPercent-encode or decode a URL
HTML Entity EncoderEscape or unescape HTML entities
YAML to JSON ConverterConvert YAML and JSON, both ways
Cron Expression ParserExplain a cron schedule, preview next runs
Number Base ConverterBinary, octal, decimal, hex, and more
Text DiffCompare two texts line by line
SEO Slug 生成器根据标题生成简洁网址
限字数文本生成器生成指定长度的占位文本
Word CounterLive word, sentence, and paragraph counts
Character CounterCharacter count, with platform limits
Remove Duplicate LinesDeduplicate a list of lines
Sort LinesSort alphabetically, numerically, or shuffle
Case ConverterUPPERCASE, camelCase, snake_case, and more
Lorem Ipsum GeneratorPlaceholder text, by word, sentence, or paragraph
Find and ReplaceFind and replace text, regex supported
密码生成器随机密码与密码短语
二维码生成器自定义颜色与纠错级别
PDF
合并 PDF将多个 PDF 合并为一个
拆分 PDF提取页面或拆分为多个文件
旋转 PDF修正横向或颠倒的页面
PDF 转图片将页面转换为图片
图片转 PDF将图片合并为一个 PDF
删除与重排删除或重新排列页面
添加页码为每页添加编号
添加水印在每页盖上文字水印
提取文字从 PDF 中提取文字
压缩 PDF缩小 PDF 文件体积
PDF 签名手绘或输入签名
SEO
Meta 标签生成器标题、描述、OG、Twitter 标签
UTM 链接生成器生成营销活动追踪链接
Robots.txt 生成器允许/禁止规则,附 sitemap 引用
站点地图生成器输入 URL,输出 sitemap.xml
Design
CSS 渐变生成器线性或径向渐变,复制 CSS
阴影生成器单层或叠加阴影
圆角生成器逐角设置圆角,复制 CSS
Favicon 生成器生成所需的所有尺寸
调色板提取器从图片中提取主要颜色
对比度检查器WCAG 对比度,AA/AAA 达标检测
颜色转换器HEX、RGB、HSL、CMYK 实时转换
Blog

norito / 博客 / 用真实数字讲清楚密码熵

用真实数字讲清楚密码熵

作者: Shubham Singh · 2026年7月20日

发布于 2026-07-20

密码强度指示条靠的是感觉,而熵靠的是算术。这里是「密码强度」背后真正的数学原理,基于真实硬件数据算出的破解时间,以及一次诚实的审视:那些你被迫遵守的规则,到底有没有用。

什么是一比特的熵

熵衡量的是一个密码是从多少个等可能的选项中抽取出来的,以 2 为底的对数来表示。从 1,024 种可能中均匀选取的密码具有 10 比特的熵,因为 210 = 1,024。每增加一比特,攻击者在最坏情况下所需的猜测次数就会翻倍。对于随机生成的密码,公式很简单:熵 = 长度 × log2(字符集大小)。

这句话里「随机」这个词承担了全部的重量。这个公式只有在每个字符都由一个合格的随机生成器选取时才成立。人类想出来的密码不符合这个条件:人类选取的往往是一个很小、且严重偏斜的集合——名字、日期、键盘上相邻的按键序列,以及末尾加个 1 的单词——而破解软件正是围绕这些模式构建的。

按字符计算的数字

仅小写字母:26 个符号,每字符 4.70 比特。加上大写字母:52 个符号,5.70 比特。加上数字:62 个符号,5.95 比特。加上所有可打印的 ASCII 符号:95 个符号,6.57 比特。请注意这个递进有多弱。从纯小写一路加到完整的 95 符号大杂烩,每字符增加的熵还不到 2 比特,而给密码多加一个字符,就能增加 4.7 到 6.6 比特。长度每次都完胜字符集复杂度,而且完全不是一个量级。

具体的破解时间

假设最坏但现实的情况:你的密码哈希在一次数据泄露中流出,网站使用的是 MD5 或 NTLM 这类快速算法(也就是你在我们的哈希生成器中可以瞬间算出的那种哈希,而这正是问题所在),攻击者使用一台现代多 GPU 设备,每秒大约进行 1000 亿次猜测。穷举所有组合所需的时间:

密码熵穷举所需时间
8 个随机小写字母37.6 比特约 2 秒
8 个随机字符,完整 95 符号集52.6 比特约 18 小时
12 个随机小写字母56.4 比特约 11 天
5 个随机 diceware 单词64.6 比特约 9 年
16 个随机小写字母75.2 比特约 14,000 年
6 个随机 diceware 单词77.5 比特约 70,000 年
12 个随机字符,完整 95 符号集78.8 比特约 170,000 年

对于平均情况,把这些数字减半,因为攻击者通常在遍历完一半的可能性空间时就会找到密码。如果网站使用的是 bcrypt 或 Argon2 这类慢哈希算法,猜测速率会骤降大约一百万倍,表中每一行的时间也会随之延长一百万倍。但你几乎永远不知道某个网站具体用的是什么算法,所以要按快速情况来规划。

为什么密码短语更胜一筹

从标准的 7,776 个单词的 diceware 词表中随机选取一个单词,其价值为 log2(7776) = 12.9 比特。五个单词能达到 64.6 比特;六个单词能达到 77.5 比特,大致相当于从完整符号集中抽取的 12 个真正随机字符的强度。区别在于,「maple-thunder-oboe-crisp-vandal」可以在手机键盘上打出来,用过几次后也能记住,而「xX9#qL!2mFp$」做不到。不过同样的前提依然适用:这些单词必须来自一个随机生成器。如果你自己去挑,你会挑出常见的、彼此相关的单词,真实的熵就会大幅下降。

真正的随机性从何而来

每个现代浏览器都提供了一个密码学安全的随机数生成器 crypto.getRandomValues,它的种子来自操作系统的熵池。基于它构建的生成器,只要在把随机字节映射到字符集时小心避免采样偏差,生成出的密码的熵就能真正符合公式的预期。这就是「生成的密码」和「自己想出来的密码」之间的全部区别:生成的密码,其熵是真实且可计算的;而自己想出来的密码,其熵只是一个猜测,而且通常是一个过于乐观的猜测。

三个该淘汰的误区

强制要求符号。 正如上面每字符的数字所示,「至少一个大写字母、一个数字、一个符号」这类组成规则对数学上的强度几乎没有影响,而在实践中,它们反而会把人们推向可预测的模板:首字母大写,末尾加感叹号,用 @ 代替 a。破解规则集早已把这些替换方式编码进去几十年了,所以无论强度指示条怎么显示,P@ssw0rd! 都会在毫秒级被破解。NIST 的指南(SP 800-63B)自 2017 年起就建议不要使用组成规则。

每 90 天强制轮换。 可预见的结果就是 Summer2025! 变成 Autumn2025!。NIST 再次给出建议:只有在有证据表明密码已泄露时才更换密码,而不是按日历更换。

仅凭字符串外观判断熵。 熵是生成密码这一过程的属性,而不是输出结果本身的属性。你脑子里想出来的「xK4pQ9vT」,比来自密码学随机生成器的八个字符要弱得多,尽管两者看起来一模一样。这也是为什么强度指示条会误导人:它们只能看到输出结果。

实用的目标

对于攻击者只能通过在线方式、面对限速机制来猜测的账户,40 比特就绰绰有余:以每小时 100 次的猜测速率,即使遍历 230 种可能性也需要超过一千年。而对于任何在数据泄露后可能被离线攻击的场景——对于你在意的账户,这应该是稳妥的默认假设——建议目标定在 75 比特以上:大约 14 个随机混合字符,或者六个 diceware 单词。并且要让每个网站使用的密码各不相同,这样一个被攻破的论坛账户就不会连带解锁你的邮箱,实际上这意味着你需要一个密码管理器加一个生成器。

如果你想看看这套数学原理在实际中的运作,norito 的密码生成器提供两种模式——随机字符串和基于单词的密码短语,并带有实时熵值显示。和本站的每一个工具一样,它完全在你的浏览器中运行,而这恰恰是密码工具最该做到的事。

亲自试试: 密码生成器 在本地生成随机密码和密码短语。不会发送到任何地方。
norito

小而专注的工具,每个只做一件事。全部在你的浏览器中运行,不会上传任何内容。

产品

所有工具 更新日志 工作原理 Blog Compare 关于我们 联系我们 隐私政策 服务条款

PDF

合并 PDF 拆分 PDF 旋转 PDF PDF 转图片 图片转 PDF 删除与重排 添加页码 添加水印 提取文字 压缩 PDF PDF 签名

图像

压缩图片 Resize Image Image Converter Crop Image Remove Metadata Watermark Image 占位图生成器 去除背景

开发工具

测试文件生成器 JSON 格式化 Markdown 编辑器 UUID Generator Base64 Hash Generator Timestamp JSON Diff JWT Decoder Regex Tester CSV to JSON CSV Viewer URL Encoder HTML Entities YAML to JSON Cron Parser Base Converter Text Diff

文本

SEO Slug 生成器 限字数文本生成器 Word Counter Character Counter Dedupe Lines Sort Lines Case Converter Lorem Ipsum Find & Replace

实用工具

密码生成器 二维码生成器

SEO

Meta 标签生成器 UTM 链接生成器 Robots.txt 生成器 站点地图生成器

Design

CSS 渐变生成器 阴影生成器 圆角生成器 Favicon 生成器 调色板提取器 对比度检查器 颜色转换器
© 2026 norito。所有工具均在本地浏览器中运行。 更新日志 Blog Compare 工作原理 隐私政策 服务条款 请我喝杯咖啡
Esc