PIN码代码生成器

设定长度、组数与种子,本页在浏览器里批量产出纯数字 PIN 码,可排除相邻重复与连续序列,生成后一键复制,全程不联网。

种子相同则结果完全可复现,方便你和我核对同一批号码;换一个种子就换一批。号码只在本地生成,不发送到任何服务器。

使用方法

PIN码代码生成器一次给你一整批纯数字号码,四步:

  1. 「PIN 长度」填 4 到 21 之间的整数,演示默认 6 位;手机解锁码通常是 4 位或 6 位。
  2. 「生成组数」填 1 到 200,演示默认 5 组;一次要得多就调大,但结果区会变长。
  3. 「随机种子」填一个整数,演示默认 20261008。同一个种子永远生成同一批号码,换种子就换一批。
  4. 两个排除规则默认都勾着:不出现相邻重复数字(如 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 行点「加载更多」。第三列是排除相邻重复后剩下的数量,第四列是它占全部组合的比例:

18 档长度下全部组合数与排除相邻重复后的可用数量(前 12 行展开,余下 6 行点「加载更多」)
PIN 长度全部组合排除相邻重复可用率
410,0007,29072.9%
5100,00065,61065.6%
61,000,000590,49059.0%
710,000,0005,314,41053.1%
8100,000,00047,829,69047.8%
91,000,000,000430,467,21043.0%
1010,000,000,0003,874,204,89038.7%
11100,000,000,00034,867,844,01034.8%
121.00×10^12313,810,596,09031.3%
131.00×10^132.82×10^1228.2%
141.00×10^142.54×10^1325.4%
151.00×10^152.29×10^1422.8%

输入范围:长度 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」存成本机文件。页面本身不保存任何记录,请务必先复制走。

相关工具