这款密码生成器能做什么
这个工具会根据你勾选的字符集,生成一个最长 50 位的随机密码,可选字符集包括:小写字母、大写字母、数字、标点符号,以及括号和各类符号。整个生成过程都在当前会话中完成,密码既不会被保存、也不会被上传,因此每个结果只存在于你眼前这个页面上。
使用方法
勾选你想纳入的字符集,选择字符的抽取方式,设定密码长度,然后点击生成即可。五类字符集可以任意搭配。纳入的字符集越多,可能的组合空间就越大,密码也就越难被猜中。
均匀抽取方式提供两种策略。全部所选字符会把所有已启用的字符集合并成一个大字符池,再从中等概率地随机抽取每一位字符。每个所选字符集则按顺序在各个已启用字符集之间轮流抽取,尽可能让每个字符集都被均匀采用,最后再打乱顺序,让各字符的位置随机分布。
计算公式解析
密码的安全性通常用“搜索空间”来衡量,也就是攻击者在最坏情况下需要逐一尝试的所有可能密码总数。假设字符池中有 P 个不同字符,密码长度为 L,那么搜索空间就是 \(P^{L}\)。每增加一位字符(即增大 \(L\)),搜索空间就会乘以 \(P\);而增加字符种类则会增大 \(P\)。可见,长度和字符多样性都会成倍提升密码的防护力。
$$\text{Search Space} = P^{L}$$
实例演示
假设你启用了小写字母(26 个)、大写字母(26 个)和数字(10 个),选择每个所选字符集的方式,并要求生成 8 位密码。此时共有 \(k=3\) 个字符集,轮转顺序为 0,1,2,0,1,2,0,1,于是会得到 3 个小写字母、3 个大写字母和 2 个数字。经过 Fisher-Yates 洗牌后,结果可能类似 kT4mQ7pR。字符池大小为 \(P = 26+26+10 = 62\),因此搜索空间为 $$62^{8} \approx 2.18 \times 10^{14}$$
常见问题
我的密码会被保存吗?不会。每个密码只用于显示,既不会被保存,也不会被记录。
密码应该设多长?建议至少 12-16 位,并搭配多种字符类型。长度越长越安全,因为每多一位字符,搜索空间都会成倍扩大。
“每个所选字符集”能保证什么?它会让字符尽可能均匀地分布在你所选的各个字符集中,这样更容易满足某些网站“必须包含字母、数字和符号”的密码规则。