使用方法
PIN码代码生成器一次给你一整批纯数字号码,四步:
- 「PIN 长度」填 4 到 21 之间的整数,演示默认 6 位;手机解锁码通常是 4 位或 6 位。
- 「生成组数」填 1 到 200,演示默认 5 组;一次要得多就调大,但结果区会变长。
- 「随机种子」填一个整数,演示默认 20261008。同一个种子永远生成同一批号码,换种子就换一批。
- 两个排除规则默认都勾着:不出现相邻重复数字(如 2210),也不出现连续递增递减(如 4567)。取消勾选即可放开。
点「生成 PIN 码」后结果区每行一组号码,点「复制全部」整段拷走,点「下载 TXT」存成本机文件。页面打开时结果区已经带着 5 组示例,你可以先看看格式再动手。
PIN码代码生成器能解决什么
它解决「需要一批能当密码用的纯数字、又不想每次都自己想」这件事,三类场景最常见:
- 给门禁或保险箱设批量初始码:一次生成几十组,导成 TXT 逐个贴标签,比手写省事也不容易重号。
- 给测试环境造数据:做登录或支付流程测试时,需要一批格式统一又不重复的数字串,用固定种子还能每次复现同一批。
- 临时要一个不好猜的解锁码:比生日和连号安全得多,生成完直接抄下来。
它不做三件事:不生成含字母的混合密码(只要数字)、不做强度评分、不保存任何记录——关掉页面这批号码就没了,请自己先复制走。
原理和变量
① 随机数是怎么来的:用固定种子的伪随机数发生器。给定种子后,它内部按一条确定的状态推进序列,所以同一个种子、同一个长度、同一个组数,产出的号码逐位一致。这也是为什么页面能挂着一批示例号码——那些就是用种子 20261008 跑出来的。
② 为什么要做唯一性去重:伪随机在短长度、大组数时可能撞号(比如要 200 组 4 位码)。本页用一个集合记录已产出的号码,撞了就直接重抽,保证结果里每组都不同。
③ 「排除相邻重复」怎么判:用正则 /(.)\1/ 检测是否有同一个字符紧挨着出现两次。命中就丢掉重抽。直观效果是「339933」这种会被滤掉,而「309507」这类可以留下。
④ 「排除连续序列」怎么判:枚举 14 组连续串——012…789 七组递增,再各取倒序得到 987…210 七组,共 14 组。号码里只要出现其中任意一组就丢弃。注意判的是「任意位置出现」,不要求整串正好是连号。
⑤ 组合空间怎么算:长度 n 的纯数字串共有 10^n 个。排除相邻重复后,第一位有 10 种选择,之后每一位只要不跟前一位相同就有 9 种,于是剩下 10 × 9^(n-1) 个,可用率随 n 递减:4 位还有 72.9%,6 位降到 59.0%,10 位只剩 38.7%。n 越大,两组号码意外相撞的概率越低。
⑥ 边界与死循环保护:长度限定在 4 到 21 位,再长已经没有实用意义,而且超过 21 位时 10^n 会超出常用数值精度;组数上限 200。如果两把钩子都勾上、又要很多组,可能出现「抽不满」的情况,本页给每组的尝试次数设了上限,超限就停下并提示你放宽长度或减少组数,不会把浏览器卡死。
完整示例
演示参数:长度 6、组数 5、种子 20261008。同一个种子在两种规则下给出两批不同结果:
- 两条排除规则都不勾时:
940271、339933、671335、570257、637335。可以看到339933里有连续的 33、99,637335里有 33——都因为没勾排除而留下了。 - 两条规则都勾上时:
940271、570257、675837、589418、309507。每一组都找不到相邻相同的两位,也找不到 012 或 987 这类顺子。 - 把长度改成 4、种子改成 1、两条规则都勾上,得到:
6059、9267、1421、4037、6571。4 位下可用组合从 10000 个降到 7290 个,但抽 5 组仍然绰绰有余。
这四组数字你都可以在页面上原样复现:把参数照抄进去,点生成,结果逐位一致。这就是种子存在的意义——把「随机」变成可核对的东西。
输入范围与对照表
下表按长度从 4 到 21 列出组合空间,前 12 行直接展开,余下 6 行点「加载更多」。第三列是排除相邻重复后剩下的数量,第四列是它占全部组合的比例:
| PIN 长度 | 全部组合 | 排除相邻重复 | 可用率 |
|---|---|---|---|
| 4 | 10,000 | 7,290 | 72.9% |
| 5 | 100,000 | 65,610 | 65.6% |
| 6 | 1,000,000 | 590,490 | 59.0% |
| 7 | 10,000,000 | 5,314,410 | 53.1% |
| 8 | 100,000,000 | 47,829,690 | 47.8% |
| 9 | 1,000,000,000 | 430,467,210 | 43.0% |
| 10 | 10,000,000,000 | 3,874,204,890 | 38.7% |
| 11 | 100,000,000,000 | 34,867,844,010 | 34.8% |
| 12 | 1.00×10^12 | 313,810,596,090 | 31.3% |
| 13 | 1.00×10^13 | 2.82×10^12 | 28.2% |
| 14 | 1.00×10^14 | 2.54×10^13 | 25.4% |
| 15 | 1.00×10^15 | 2.29×10^14 | 22.8% |
| 16 | 1.00×10^16 | 2.06×10^15 | 20.5% |
| 17 | 1.00×10^17 | 1.85×10^16 | 18.5% |
| 18 | 1.00×10^18 | 1.67×10^17 | 16.6% |
| 19 | 1.00×10^19 | 1.50×10^18 | 15.0% |
| 20 | 1.00×10^20 | 1.35×10^19 | 13.5% |
| 21 | 1.00×10^21 | 1.22×10^20 | 12.1% |
输入范围:长度 4 到 21 位,整数,越界会被卡到边界值并提示;组数 1 到 200;种子取 1 到 9999999999 的整数。表格里的巨大数字用「1.00×10^12」这种科学计数法表示,它和 10^12 是同一个意思。注意「可用率」下降得很快:长度从 4 涨到 8,可用率就从 72.9% 掉到 47.8%,但可用组合的绝对数量仍在暴涨,所以密码学意义上越长越难猜。
结果边界和舍入
三条边界,动手前先知道:
- 不是密码学安全的随机:本页用的是可复现的伪随机数发生器,同一个种子必然产出同一批号码。它的设计目标是「可核对、批量、不重复」,不是抗预测。如果你要拿它当高价值账户的真实口令,请改用系统的密码管理器生成,那里用的是加密级随机源。
- 长度为 4 时不要指望太多:勾上两条排除规则后仍有一万以内的组合空间,配合暴力尝试是能被试出来的。4 位码适合门禁这类带次数限制的场景,不要用于联网账户。
- 不保存、不去重的跨批保证:页面的去重只在这一次生成内有效。你先后点两次「生成」,两批之间可能重号,只是同批内绝不重复。要跨批去重请把结果攒到一起去重后再用。
常见问题
生成的号码会上传吗?
不会。号码在浏览器里算出来就直接写进结果框,不会发往任何服务器,关掉页面就没了。
同一个种子为什么每次结果都一样?
因为用的是可复现的伪随机发生器:给定种子后内部序列是固定的。这正好方便核对——把长度、组数、种子填成一样,结果就一定一样。
为什么勾了排除规则后结果变少了?
规则不改变组数,只是把不合规的号码丢掉重抽。如果可选空间太小(比如长度 4 又要 200 组并排除很多),会抽不满,页面会提示放宽条件。
「连续序列」具体排除哪些?
排除 0123、1234 直到 6789 这七组递增串,以及 9876 直到 3210 这七组递减串,共 14 组。号码任意位置出现其中一组就会被丢弃。
4 位 PIN 码安全吗?
不适用于联网账户。4 位纯数字只有一万以内组合,适合门禁、行李箱这类带尝试次数限制的场合。联网账户建议至少 8 位并混用字母符号。
能生成含字母的密码吗?
不能。本页只产数字,因为 PIN 的用途是数字键盘输入。要字母数字混合的密码请用专门的密码生成器。
一次最多生成多少组?
200 组。再多结果区会变得很长、复制也容易出错,建议分批导出。
结果怎么保存?
点「复制全部」粘到任何地方,或点「下载 TXT」存成本机文件。页面本身不保存任何记录,请务必先复制走。