| 卡组织 | 前缀 | 卡号长度 |
|---|---|---|
| Visa | 4 | 13, 16, 19 |
| Mastercard | 51-55, 2221-2720 | 16 |
| American Express | 34, 37 | 15 |
| UnionPay (银联) | 62 | 16-19 |
| JCB | 3528-3589 | 16-19 |
| Discover | 6011, 65 | 16-19 |
这个工具用来判断一串银行卡号是不是「格式上合法」,核心是跑一遍 Luhn 算法(也叫模 10 算法,ISO/IEC 7812 附录 B),再根据前 6~8 位 BIN 号段猜出卡组织。它不能告诉你这张卡有没有钱、能不能刷、是不是真卡,只能告诉你「这串数字连校验位都对不上,肯定是打错了」。典型场景:财务同事在 Excel 里录了 200 条客户卡号,你不想一条条肉眼比对,把卡号粘进来,工具会标出第 37 条 6222021234567890123 校验失败——因为它的校验位应该是 4 而不是 3。
| 对比维度 | 本工具 | 手工/替代做法 |
|---|---|---|
| 单条验证耗时 | 输入即出结果,约 0.1 秒 | 手动按 Luhn 逐位乘 2 相加,16 位卡号约 40 秒且易算错 |
| 批量处理 | 一次粘贴一条,适合抽查 | Excel 写公式 =MOD(SUMPRODUCT(...),10)=0,200 条要调 15 分钟 |
| 卡组织识别 | 按 BIN 段自动判 5 种主流卡 | 查 BIN 表或凭记忆,62 开头银联、4 开头 Visa 容易记混 |
| 脱敏输出 | 一键显示 4539 **** **** 6467 | 手动打星号,16 位要敲 8 个 *,容易数错位数 |
| 隐私 | 纯本地,零网络请求 | 在线校验网站多数会把卡号 POST 到服务器,有留存风险 |
从右往左数,偶数位(第 2、4、6…位)乘 2,如果乘完大于 9 就减 9;奇数位保持不变。把所有位相加,总和能被 10 整除就通过。以 4539148803436467 为例,处理后各位和为 70,70 % 10 = 0,通过。注意它只能抓出约 90% 的随机输错,像 22 写成 55 这种交换错误抓不到。
Luhn 只验证数字结构,不查发卡行、不查余额、不查有效期和 CVV。理论上 16 位数字里约有 1/10 能通过校验,也就是说随便编 10 个号就有一个「格式合法」。真正能不能交易要看银行授权,本工具不联网、不调用任何支付接口,所以永远给不出「可用」结论。
不绝对。银联境内卡主要用 62 开头,但历史上也发过 60、61、63、64、65、66、67、68、69 开头的卡,另外 622126-622925 这段是银联的。本工具按 62 开头判银联,属于常见情况覆盖,遇到 60 或 65 开头的卡会显示「未知卡组织」,这是正常的,不代表卡号有问题。
ISO/IEC 7812 规定主账号 PAN 最多 19 位,常见的是 13、15、16、19 位。Visa 是 13 或 16 位,Mastercard 是 16 位,Amex 是 15 位,银联借记卡多为 19 位。本工具对 12 位以下或 20 位以上直接判长度不合法,不再跑 Luhn,避免把明显不是卡号的数字算成通过。
不会。整个计算在浏览器里用 JavaScript 完成,页面没有 fetch、XMLHttpRequest 或 WebSocket 调用,按 F12 打开网络面板可以看到输入过程中零请求。关掉页面后内存里的卡号就释放了。不过仍建议别在公共电脑上粘贴真实卡号,浏览器历史、剪贴板、输入法都可能留痕。
本工具只做格式校验,不验证卡是否有效、是否有余额、是否被冻结,也不校验有效期和 CVV。卡组织识别基于公开 BIN 号段,覆盖 Visa、Mastercard、银联、Amex、Discover 五类,其余显示「未知」。所有计算在浏览器本地完成,不上传、不存储、不记录,关页即清。请勿用于任何非法用途。