银行卡号校验与卡种识别
填卡号,先验校验位对不对,再看是哪个卡组织、长度符不符合规则。校验位不对说明有一位抄错了,页面会直接告诉你正确的最后一位是多少。
上面的三个是公开的测试卡号,不是真实账户。整站都在浏览器本机算,卡号不会发到服务器;但在公共电脑上仍然不建议输入真实卡号。
校验结果
填入卡号开始校验
请填入卡号
常见卡组织号段
按 ISO/IEC 7812 的发行者识别号整理。号段判断只看前几位,所以「识别出卡组织」比「识别出发卡行」可靠得多。
| 卡组织 | 常见长度 | 说明 |
|---|---|---|
| 银联(UnionPay) | 16、17、18、19 位 | 62 开头是银联,国内卡绝大多数都是它 |
| Visa | 13、16、19 位 | 4 开头,长度最常见的是 16 位 |
| 万事达卡(Mastercard) | 16 位 | 51 到 55 和 2221 到 2720 两个号段 |
| 美国运通(American Express) | 15 位 | 34 或 37 开头,固定 15 位 |
| JCB | 16、17、18、19 位 | 3528 到 3589 号段 |
| 大来卡(Diners Club) | 14、16、19 位 | 36、38、300 到 305 号段 |
| Discover | 16、17、18、19 位 | 6011、65、644 到 649 和 622126 到 622925 |
| Maestro | 12、13、14、15、16、17、18、19 位 | 欧洲常见的借记卡品牌 |
首位数字(MII)表示什么
卡号第一位是行业标识,由 ISO 分配,能看出这张卡属于哪个行业,但不代表具体银行。
| 首位 | 行业 |
|---|---|
| 0 | ISO/TC 68 及后续行业 |
| 1 | 航空业 |
| 2 | 航空业及其他行业 |
| 3 | 旅行与娱乐业(美国运通、大来卡) |
| 4 | 银行与金融业(Visa) |
| 5 | 银行与金融业(万事达卡) |
| 6 | 商业与银行业(银联、Discover) |
| 7 | 石油业 |
| 8 | 电信业 |
| 9 | 由国家标准机构分配 |
常见发卡行号段(参考)
这一小批号段是从公开资料里整理的,不完整,也可能已经变动。号码不在表里不代表卡有问题,只是没收录; 表里命中也只能算推测,何况各行的号段一直在增加。真要确认发卡行,用银行 App 或客服查。
| 号段(前 6 位) | 发卡行 |
|---|---|
| 6222 02 | 中国工商银行 |
| 6212 26 | 中国工商银行 |
| 6228 48 | 中国农业银行 |
| 6216 61 | 中国银行 |
| 6227 00 | 中国建设银行 |
| 6222 62 | 交通银行 |
| 6225 88 | 招商银行 |
| 6210 96 | 中国邮政储蓄银行 |
| 6225 21 | 上海浦东发展银行 |
| 6229 08 | 兴业银行 |
| 6226 22 | 中国民生银行 |
| 6226 60 | 中国光大银行 |
| 6221 55 | 平安银行 |
| 6225 68 | 广发银行 |
Luhn 算法是怎么算的
银行卡号的最后一位是校验位,由前面所有位算出来。算法叫 Luhn(也叫模 10 算法):从右往左数,隔一位把数字乘 2,乘完超过 9 就减 9,然后把所有数字加起来,总和能被 10 整除才算通过。举个短例子,卡号 79927398713 的验证过程是:先算前面各位的加权和,最后一位 3 刚好把总和凑成 10 的倍数。
这个算法的能力边界要知道:它能发现绝大多数「抄错一位」和「相邻两位写反」的错误,但挡不住刻意伪造的号码。所以校验通过只说明号码自洽,不代表卡真实存在、没被注销或者能用。任何拿「校验通过」当实名认证依据的系统,都是设计得不够严谨的。
为什么判断不了借记卡还是信用卡
借记卡和信用卡在号段上并不分开。同一个银行、同一段 IIN,既可能发借记卡也可能发信用卡,区别在卡组织内部怎么分配,外部只能看到号段。有些国家和地区会用某几位区分卡种,但不是国际通行规则,所以本页不给这个结论,只给卡组织和长度。
为什么发卡行只能算推测
卡组织把号段分配给成员机构,银行再往下细分。前面 6 位(BIN)确实能对应到发卡行,但这张表由各家自己维护并不断扩容,公开版本永远滞后。老卡、新发的卡、联名卡、外资行和虚拟卡尤其容易对不上。所以本页只收了一小批常见号段,标成「按号段推测」,并且在校验位不通过时干脆不给这个结论——号都算不对,谈归属没有意义。
和身份证、统一社会信用代码校验的区别
身份证号用的是 ISO 7064 的 MOD 11-2(末位可能是 X),统一社会信用代码用的是 MOD 31-1,银行卡号用的是 Luhn 的模 10。三种算法不一样,但思路相同:都是加一位校验位,让抄错数字这件事在录入阶段就暴露出来。
卡号属于高度敏感的个人信息,建议只在必要的场合填写。真要在不熟悉的页面上验证卡号,优先用银行官方的渠道;本页虽然全程在浏览器本地计算、不上传任何数据,公共设备上输入真实卡号仍然有被键盘记录或被旁人看到的风险。