随机密码生成器

加载中…

操作选好长度与字符种类点「生成」,每条右边有「复制」;顶部可切到「易记口令」模式

猜你喜欢

打开就能用的在线随机密码生成器:随机字符模式可设 4~128 位长度、大写小写数字符号四类开关、可编辑的符号集、排除易混字符与「每类至少一个」,一次生成 1/5/10/20 个;易记口令模式用 1120 个常用词随机连成好念好敲的强密码。每一批都给出熵(位)、强度档位与离线穷举的时间量级。密码用浏览器自带的加密级随机源现算现出,只留在本页内存里,不上传、不写进本地存储。

怎么用

页面顶部常驻一句说明:密码在你这台设备的浏览器里现算现出,不上传、不保存到任何服务器,也不写进浏览器的本地存储。本机只记你选的那些设置,密码本身只活在这一页的内存里,刷新就没了。

顶部两个页签切换模式:随机字符(默认)与易记口令。进页面就会先生成一条,省你一次点击。

一、随机字符

  • 长度:滑块或右边的数字框,4 到 128 位,默认 16 位。长度是强度最大的那个旋钮,能拉就往长了拉。
  • 字符种类:大写 A~Z、小写 a~z、数字 0~9、符号,四个开关随便勾。四类全关就生成不出东西,页面会提示你至少勾一类。
  • 符号集:一个可以直接改的输入框,默认是 !@#$%^&*()-_=+[]{}? 这一组各家网站普遍收得下的符号。你可以整串换掉,只留某个网站允许的几个;页面会自动剔掉字母、数字、空格与非 ASCII 字符(它们要么和上面三类重复,要么会在很多系统里出事),重复的符号也只留一个,最多收 48 个。
  • 排除易混字符:勾上之后,结果里不会出现 0(零)、O(大写欧)、o(小写欧)、1(一)、l(小写 L)、I(大写 i)、|(竖线)、`(反引号)、’(单引号)、“(双引号) 这十个。前六个是抄写时最常看错的,后四个是在终端和配置文件里最容易被转义弄坏的。密码要手抄到另一台设备、要念给别人听、要写进配置文件时,勾上它。
  • 每类至少一个:默认开。很多网站要求「必须同时包含大小写、数字和符号」,开着就不会生成到一半才发现少了一类。做法是先从每一类各取一个,再从全集补足剩下的位数,最后把整串洗一遍牌——所以第一位不会永远是大写字母,不会出现位置偏向。长度比勾选的类数还少时这条约束物理上做不到,页面会说明一句并退回纯随机。
  • 一次生成几个:1/5/10/20。一次给一批,适合批量开账号、给几台设备各配一个。

二、易记口令

用 3 到 8 个常用词连成一条,词表里有 1120 个词(普通话拼音音节与英文短词,全部小写字母),每个词都从整张表里独立随机取。

  • 分隔符:短横 -(默认)、点 .、下划线 _,或者不加连着写。
  • 首字母大写:每个词首字母变大写,用来应付那些「必须含大写字母」的网站。这是一条固定规则,不增加强度,页面的熵读数也不会因此变高。
  • 末尾加 2 位数字:同样是给规则党用的,会给熵加上约 6.6 位。

拿到密码之后

  • 每一条右边有复制按钮;顶部的全部复制把这一批按一行一条复制走,贴进表格软件正好成一列。浏览器不允许网页直接写剪贴板时(常见于非安全上下文),页面会把内容放进下面一个小框并选中,你自己按 Ctrl+C(Mac 上是 ⌘+C)即可。
  • 隐藏/显示:把密码换成等长的圆点,身边有人或者要投屏时用。
  • 生成:按当前设置再来一批。改长度、字符种类、符号集、一次生成几个这些选项时,页面会就地重新出一批,不用再点。
  • 复制之后 30 秒,页面会提醒一句「记得存进密码管理器」——剪贴板里的东西别久留,尤其在公用电脑上。
  • 切走标签页再回来,页面会主动把上一批密码从内存里清掉,再点一次「生成」即可。这是有意的:别让一屏密码在你离开时留在屏幕上。

这一页不做的事

不提供「输入你的密码检测强度」的输入框。强度读数只针对本页刚生成的密码。理由写在下面「常见问题」里——把真密码贴进网页是个不该养成的习惯。页面也不保留任何生成历史。

怎么看结果

每生成一批,结果下面会给三个读数:强度档位、熵(位)、离线穷举的时间量级。

熵是什么

熵衡量的是「这个密码有多少种可能的取法」,单位是位(bit)。公式很简单:

熵 = 长度 × log₂(字符集大小)

四类全勾时字符集是 26+26+10+19 = 81 个字符,16 位的密码熵约 101.4 位,意思是可能的取法约有 2 的 101.4 次方种。每多 1 位熵,破解需要的尝试次数就翻一倍;每多 1 个字符,四类全勾时熵涨约 6.3 位,也就是难度乘以约 81 倍。这就是「加长比加花样有用」的数学原因。

要注意熵算的是生成方式,不是这一串字符本身。同样一串 X7k#mQ2p,机器随机取出来的熵是实打实的;人照着某个规律敲出来的,熵要按「人有多少种规律可选」来算,通常低得多。

强度分档(区间写死在页面里)

档位 熵 一句话
弱 低于 45 位 太短或字符种类太少,再加长一点
一般 45 ~ 59 位 日常小号勉强够;重要账号建议再加几位或多勾一类
强 60 ~ 79 位 够用于绝大多数账号,配上不重复使用就很稳
很强 80 位及以上 按现在的算力,离线穷举在可预见的时间里跑不完

「离线穷举」那个时间怎么来的

页面按每秒一千亿次尝试、平均试一半就能命中来估,也就是 2 的(熵−1)次方 ÷ 10¹¹ 秒。这个速率对应的是最坏情况:攻击者拿到了某个网站泄露的密码散列文件,用显卡在自己机器上离线硬算,而且那个网站用的是过时的快速散列。读数只给量级,不是预测——现实里的破解速度取决于对方的硬件和网站用的散列算法,差上几个数量级都很常见。

反过来说,在线猜测(对着登录框一个个试)要慢得多,几乎所有网站都有次数限制,那种场景下连 45 位熵都绰绰有余。这个读数的意义在于:你不知道哪家网站会泄露,所以按最坏情况准备。

多长才够用

  • 随便注册的小站:12 位、四类全勾(熵约 76 位)就够,反正每站一个、泄露了不连坐。
  • 邮箱、网盘、社交、支付:16 位起步(熵约 101 位),并且一定要开二次验证。邮箱是所有账号的找回入口,值得给最长的那一个。
  • 密码管理器的主密码、开机密码:用易记口令模式,6 到 7 个词(熵约 61~71 位),好记好敲,而且不会因为记不住而被你写在便签上。
  • 要手抄、要念出来的密码:勾上「排除易混字符」,或者直接用易记口令——电话里念 dong-maple-qiu-river 比念 I1l0O| 省事太多。

随机字符还是易记口令

两个模式的强度都来自同一件事:随机。区别在使用场景。随机字符短、密度高,同样长度下熵更高,适合交给密码管理器保管、你自己一辈子不会手打第二次;易记口令长一些(4 个词约 25 个字符),但能念、能敲、能记住,适合那几个必须靠脑子的场合。需要注意的是词数不能省:3 个词只有约 30.4 位熵,属于「弱」,请至少取 5 个词(约 50.6 位),重要场合取 6 到 7 个。

页面提示的那几句

  • 「四类字符一个也没选」:勾上至少一类再生成。
  • 「符号集是空的」:符号集输入框里的内容全被过滤掉了(比如填的是中文或空格),这一轮符号那一类没参与,熵会相应变低。
  • 「长度比选中的字符种类还少」:比如只要 4 位却勾了四类还开着「每类至少一个」——能做到,但再短就做不到了,页面会退回纯随机并说明。

常见问题

这一页用的随机数可靠吗?

用的是 crypto.getRandomValues,即浏览器提供的加密级随机源,背后是操作系统的随机数池,材料来自硬件噪声、时钟抖动、中断时序,设计目标是「看过去的输出也推不出下一个」。取到的整数还套了一层拒绝取样:把取样空间按字符集大小切成整份,落在末尾零头里的取样丢掉重取,这样每个字符被取到的机会完全一样,不会有某几个字符偏多的取模偏差。

拿不到这个接口时,这一页直接不生成,并在界面上说明换个浏览器再试。这是这一页与站内别的随机工具最大的一处不同:别处拿不到加密级随机源会退回 Math.random,够用;密码这一页不行——Math.random 是伪随机数,知道内部状态就能把后续输出全部算出来,拿它当密码等于给人留后门。

同一个密码在多个网站用,风险到底有多大?

这是普通人最大的那个风险,比密码本身够不够复杂重要得多。攻击链条很固定:某个小网站泄露了账号与密码 → 有人把这份名单拿去在邮箱、网盘、支付平台上逐个试 → 凡是重复用过的账号一个不落。这叫撞库,成本极低、成功率却不低。所以再强的密码,重复用就废了一半。一站一个密码,加上关键账号开二次验证,是收益最大的两件事。

密码需要定期更换吗?

早年的规矩是「每 90 天换一次」,现在的主流建议改了:没有迹象的情况下不必定期换。原因很实际——强制定期更换会让人把 Qwer2024! 改成 Qwer2025!,强度不升反降。该换的时机是三个:这个网站发生了泄露、你在别处重复用过这个密码、你怀疑设备被人动过。

手机上好用吗?

好用。页面在 400 像素宽的屏幕上完整可见,长度滑块、四类开关、结果行都会自动折行缩排。手机上有两点值得注意:一是复制之后尽快贴进目标输入框,别让密码在剪贴板里久留,很多应用能读剪贴板;二是手机手打长密码容易错,如果这个密码需要在手机上反复输入,用易记口令模式更省事。

站内还有哪些随机工具?

要数字、要抽人、要掷骰子抛硬币,去 随机数生成器;要在一份名单里抽人、随机分组、排出场顺序,去 在线抽签器;想让随机过程当众看得见,去 随机转盘。那几页的随机源和这一页同源,区别在于它们拿不到加密级随机源时会退回普通随机数,而这一页不会。

键盘上某个符号打不出来怎么办?

先确认不是键盘的问题——站内的 键盘测试 可以逐键查一遍,按下去有没有反应、是不是一按两下都能看出来。确认是输入法或布局的问题,最省事的做法是把符号集改成你确定打得出来的那几个,重新生成。

原理与冷知识

  • 密码强度是指数的,人的直觉是线性的。 大多数人觉得「12 位改成 16 位,也就长了三分之一」。实际上四类全勾时,每多一位都要乘以约 81:12 位到 16 位,难度乘了约 4300 万倍。这也是为什么「加长」永远是第一优先,「加符号」只是顺手。

  • 「至少一个大写、一个数字、一个符号」这类规则正在被淘汰。 美国国家标准与技术研究院(NIST)在 2017 年修订的数字身份指南里明确建议:不要强制字符组合规则,不要强制定期更换,改为鼓励更长的密码并对照已泄露密码库做黑名单。理由是组合规则并没有让密码变随机,只是让人从 password 改成 Password1!——攻击工具早就把这些变形规则内置了。这一页把「每类至少一个」做成一个可关的开关,正是因为它现在的用途只剩「应付还在用老规矩的网站」。

  • 取模偏差坑过很多人。 「拿随机整数对 n 取余」是教科书里最常见的写法,也是最常见的隐蔽 bug:n 不能整除取样空间时,前面几个余数会多分到一份机会。在生成密码的场景里,这意味着某几个字符出现得比别的更频繁,攻击者可以据此缩小搜索范围。历史上多起密码学事故都源于这一类偏差。

  • 「每类至少一个」如果不洗牌,会白送一截强度。 一个常见的实现错误是「先放一个大写、再放一个小写、再放一个数字、再放一个符号,剩下的随机补」——结果前四位的类型是固定的,攻击者可以只搜这一种排列。正确做法是补足之后整串 Fisher–Yates 洗牌,这也是本页的做法。

  • 词组口令的思路来自 Diceware。 1995 年,阿诺德·雷因霍尔德提出用实体骰子在一张 7776 个词的表里选词造口令:掷五次骰子得到一个五位数,查表得一个词,取六个词就是约 77.5 位熵。它的精妙之处在于随机源是骰子——不需要信任任何软件。本页的易记口令是同一个思路的网页版,词表 1120 个、随机源换成浏览器的加密级随机数。

  • 「马 电池 订书钉 正确」那张漫画影响了整整一代人。 2011 年的 xkcd 第 936 则用一幅对比图说明:人挖空心思拼出来的 Tr0ub4dor&3 既难记又不够强,四个随机常用词连起来反而又好记又更强。它不算严谨的密码学论文,但把「长度与随机比花样重要」这件事讲清楚了,此后大量密码管理器都加上了词组口令模式。

  • 最常见的密码年年都是那几个。 各家安全厂商每年从泄露数据里统计出的榜单,前几名长期是 123456、password、111111、qwerty 这一类,中文用户里还常见 woaini1314、5201314 与手机号本身。破解工具的第一轮从来不是穷举,而是拿这类清单加上常见变形规则去撞,几秒钟就能跑完。

  • 密码的散列方式比密码本身更决定泄露后的后果。 同样一串 16 位密码,存在用现代慢散列(bcrypt、scrypt、Argon2)保护的网站里,攻击者每秒只能试几万次;存在用一次快速散列糊弄过去的网站里,每秒能试上百亿次。这一页给的时间量级按后者估,是因为你无法选择网站怎么存——你能选的只有把密码做长、做随机、不重复用。

  • 「密码」这个词比计算机老得多。 罗马军团的夜间口令(watchword)每天更换,写在木牌上由传令兵逐哨传递;而计算机上第一次使用密码,一般认为是 1961 年麻省理工学院的兼容分时系统 CTSS——同一套系统也留下了已知最早的密码泄露记录:一名研究人员为了多拿机时,把存着全部密码的文件打印了出来。那一年距离今天六十多年,泄露的成因至今没怎么变过:不是算法被攻破,而是存放的方式出了问题。

本页更新于 2026-09-25 · 分类:在线工具、休闲小游戏