使用方法
- 将“PIN 长度”设为4至12位。NIST SP 800-63B 要求至少4位,并建议6位。
- 勾选需要的规则:“数字不重复”、“三位数字不按顺序排列”,或“避开最常见的20个四位 PIN”。
- 在“生成数量”中选择要生成的个数。每次更改设置,页面都会重新生成。
- 按“复制”或“下载”保存列表。页面不保存任何 PIN。
PIN 码如何生成
每一位数字都取自浏览器的 crypto.getRandomValues,即安全随机数。抽取没有偏差:只有当32位数值低于该范围的最大整数倍时才会被使用,因此每个数字出现的机会均等。
设定规则后,违反规则的 PIN 会被丢弃并重新抽取。因此,每个符合规则的 PIN 被抽中的机会都相等,熵值就是所选规则下的真实数值。
熵值(比特)= log2(符合规则的 PIN 数量)
采用哪些规则,以及原因
NIST SP 800-63B 规定,用作激活密钥的 PIN 至少为四位,建议6位或以上。该文件还建议使用常用值的黑名单。
重复使用的数字(如1122)和按顺序排列的三位数字(如1234、321)都是容易被猜中的规律。最常见的20个四位 PIN 列表取自 SecLists 频率列表(MIT 许可证),其中1234和0000排在最前。
- 四位数字共有10,000个 PIN;六位数字则有一百万个。
- 数字不重复时,PIN 最多只能有十位,因为数字本身只有十个。
计算示例:不含规律和常见 PIN 的四位数字
在10,000个四位 PIN 中,有306个含有按顺序排列的三位数字。剩下9,694个,其中18个是常见 PIN(1234和4321已被排除在外)。因此,共有9,676个 PIN 符合规则。
它们的熵值为 log2(9,676),即13.2比特。2的13.24次方约为9,676,正是符合规则的 PIN 数量。
常见问题
PIN 码会被保存或发送到服务器吗?
不会。PIN 码在您的浏览器中生成,并显示在本页面上。页面不会保存、发送或记录任何内容,刷新页面后它们即会消失,因此请先复制需要的 PIN 码。
为什么不用生日或年份作为 PIN 码?
日期和年份被许多人共用,因此不适合作 PIN 码。本页生成的随机 PIN 码更难猜,但也更难记住。如果服务允许,请把它保存在密码管理器中。
熵值对 PIN 码意味着什么?
它是选择空间的比特数。规则已知且 PIN 码是随机的,攻击者平均需要猜测约为2的该比特数次方的一半次,因此每增加一个比特,工作量就翻一倍。
四位 PIN 码的安全性足够吗?
NIST SP 800-63B 允许四位作为最低要求,并建议六位。许多设备和银行卡会限制错误尝试的次数,因此在为重要事项选择短 PIN 码之前,请先确认这一限制。
为什么数字不重复时,PIN 长度限制为十位?
数字不重复时,只有十个不同的数字可选,因此 PIN 码不能超过十位。若在该规则下要求更长的 PIN 码,页面会拒绝。
常见 PIN 列表从何而来?
它取自 SecLists 四位 PIN 码频率列表的前部,该列表以 MIT 许可证发布。这个列表只涵盖四位 PIN 码,因此该规则在其他长度下不起作用。
资料来源
- NIST SP 800-63B,第3.2.10节(激活密钥)(英文)
- SecLists:按频率排序的四位 PIN 码(MIT 许可证,英文)
- MDN:Crypto.getRandomValues()(英文)
数据和文字最近核对于2026年11月10日星期二。