为支付集成测试生成通过 Luhn 校验的假卡号:Visa / Mastercard / Amex / Discover / JCB / 大来卡,非真实、仅供沙盒,浏览器本地
- 本地处理
- 分类 开发运维
- 适合 格式化、校验、压缩或检查和代码相关的文本。
这个工具能做什么
给开发者和 QA 用的测试信用卡号生成器。生成的号码通过 Luhn 校验、带正确 的发卡机构前缀,但不绑定任何真实账户,和 Stripe、PayPal 文档里公布的 沙盒测试卡是同一个理念: 结构上合法,功能上是空的,用来跑你自己的支付 表单、校验正则和 Luhn 检查,不含任何资金、不属于任何人。
选卡组织:Visa(4 开头,16 位)、Mastercard(51-55 及 2221-2720 区间, 16 位)、American Express(34/37,15 位)、Discover(6011/65/644-649, 16 位)、JCB(3528-3589,16 位)、大来卡 Diners(36/38/300-305,14 位), 也可以选"随机混合"。工具用 crypto.getRandomValues 填充中间位,再用 Luhn 算法算出末位校验位,保证整串号码通过 Luhn。一次最多生成 500 个, 可选附带随机占位 CVV(Amex 4 位,其余 3 位)和一个未来的 MM/YY 有效期, 支持单个或全部复制、导出 CSV 给你的种子脚本用。全部在浏览器里跑,不发 网络请求,你生成的任何东西都不会被记录或上传。
工具细节
- 输入
- 数值
- 页面会根据工具类型展示文本框、数值控件、文件选择或结构化输入。
- 输出
- 即时结果 + 复制 + 下载
- 结果区优先给出可操作结果,支持项会显示复制、下载或可视化预览。
- 隐私
- 浏览器本地处理
- 主工具逻辑未发现外部 API 调用,输入通常留在当前标签页内处理。
- 保存 / 分享
- 可分享链接状态
- 关键设置会进入 URL,复制链接后别人能复现同一组参数。
- 性能预算
- 首屏 JS ≤ 9 KB
- 没有声明 WASM 依赖,适合快速打开和移动端使用。
- 适用场景
- 开发运维 · 程序员
- 分类和职业标签用于推荐相关工具、组织内链,并帮助用户快速判断是否适合当前任务。
怎么用
-
1. 输入
把内容粘贴或拖入工具面板。
-
2. 处理
点击按钮,在浏览器内本地处理,文件不上传。
-
3. 复制 / 下载
一键复制结果或下载到本地。
测试信用卡号生成器 适合怎么用
适合穿插在写代码、查问题、做 Review、上线前的小任务里。
适合开发场景
- 格式化、校验、压缩或检查和代码相关的文本。
- 把片段整理好再放进文档、工单、提交或交接材料。
- 不切换工具,快速检查一个小 payload。
开发检查项
- 压缩、混淆这类不可逆处理,先对副本操作。
- 除非确认工具本地处理,不要粘贴密钥和敏感片段。
- 转换后的代码上线前,仍要跑自己的测试或 lint。
下一步可以接着做
这些入口会把当前任务接到更完整的工具链里。
真实使用场景
测试结账表单的卡种识别
你的结账页会随用户输入实时显示 Visa/Mastercard/Amex 图标, 靠 IIN 前缀判断。要覆盖所有分支,就需要真正以 4、51-55、 34/37 等开头的号码。步骤: 选"随机混合",数量设 50,生成, 导出 CSV。把每个号码喂进表单字段,断言显示了正确图标、要求 了正确的 CVV 长度(Amex 4 位,其余 3 位)。因为每个号码都 通过 Luhn,表单的校验和守卫不会在卡种识别代码跑之前就拒掉。
单测你自己的 Luhn 实现
你写了个 `validateCard()`,想要一组跨卡组织的已知合法号码做 测试夹具。每个卡种生成 20 个,粘进测试文件做正例数组,再把 其中几个改掉一位数字构造反例。这样测试就能断言 `validateCard(good) === true` 和 `validateCard(tampered) === false`,不用硬编码任何"像真卡"、还得从版本库里清掉的 号码。
给演示环境灌支付数据库
销售演示需要一张"交易"表,看起来真实但里面零个真实卡号。 生成 500 个混合卡种、带假有效期的号码,导出 CSV,和 mock data generator 的假姓名一起塞进种子脚本。演示里能看到逼真 的卡种图标和后四位显示,安全团队也放心,因为夹具里没有一个 是活号。
不碰真实网关也能 QA 支付失败路径
上线前你想验证前端能否优雅处理"卡被拒"的文案和重试 UX, 还没接沙盒。把生成的号码放进表单: 它通过你的前端 Luhn 和 长度校验,走到 submit 处理函数,你 mock 的 API 就能返回 拒付。整条 UI 流程到网关边界都测到了,一次沙盒往返都不用。
给输入解析器构造 fuzz 语料
你的后端在校验前会去掉卡号里的空格和短横。打开分组生成号码, 全部复制,把带空格的形式(如 `4111 1111 1111 1111`)和不 带分组的形式都喂进解析器测试集,确认两者都归一化成同一个 16 位 PAN 并通过 Luhn 关卡。
常见踩坑
把它们当成能触发特定网关响应的 Stripe/PayPal 沙盒卡。它们没在任何沙盒注册,网关在授权阶段就会拒。要"触发 3DS 挑战"或"触发拒付",必须用服务商自己文档里的号码。
把这里的 CVV 或有效期粘到任何当真的地方。它们是和 PAN 无关的随机占位符,唯一保证的是格式(3-4 位数字、一个未来月份)。只用来填必填字段,仅此而已。
以为覆盖了所有发卡前缀。真实 BIN 区间很大且会随时间变化; 本工具内置的是各卡组织公开的常见区间。如果你的校验器用了严格的 BIN 数据库,生成的号码可能被识别为'未知'而不是你选的卡种,这是预期行为,不是 bug。
隐私说明
每个号码都在你的浏览器标签页里用 crypto.getRandomValues 和 Luhn 算法 本地生成。任何 PAN、CVV、有效期或 CSV 导出都不会被传输、记录或存到 服务器。你选的卡组织、数量和附加字段会写进可分享 URL,方便你发一个预 设好的链接,但生成的号码本身绝不写进 URL,每次访问都重新随机。显示 偏好(分组、Luhn 标记)只存在你浏览器的 localStorage 里。
常见问题
类似工具组合
做你这行的人, 还会一起用这些。