银行卡号校验

用 Luhn 算法校验银行卡号是否合法。

什么是银行卡号校验?

银行卡号校验工具基于 Luhn 算法(也叫模 10 算法)验证一串数字是否符合银行卡号的校验位规则。Luhn 算法的做法是:从卡号最后一位开始向左,偶数位(从右数第二位起)数字乘以 2,若结果超过 9 则减去 9,再把所有位数字相加,如果总和能被 10 整除则校验通过。这个算法被几乎所有主流银行卡、信用卡(Visa、MasterCard、银联等)采用,用来快速过滤掉明显打错的卡号。

为什么使用银行卡号校验?

在网页表单、收银系统里输入银行卡号时,前端可以先用 Luhn 算法做基础格式校验,及时提示"卡号格式不正确",减少因用户手误多打或少打一位数字导致的无效提交,降低后端和银行接口的无效请求量。 但需要明确的是,Luhn 校验只能验证卡号"数字组合在数学上自洽",并不能验证这张卡是否真实存在、是否属于某人、余额是否充足——这些必须通过银行或支付网关的真实接口才能确认。

使用示例

校验一个测试卡号

输入常见的 Visa 测试卡号 4111111111111111,按 Luhn 算法计算校验和能被 10 整除,工具会提示"格式校验通过",这类号码常被支付平台的沙箱环境用作测试卡号。

发现打错的卡号

若用户本该输入 6222021234567890123 却少打一位变成 622202123456789012,位数变化会导致偶数位/奇数位的加权对象整体错位,Luhn 校验和大概率不再能被 10 整除,工具会提示"格式校验不通过",帮助用户在提交前发现问题。

结合卡 BIN 判断卡组织

卡号前 6-8 位(BIN/IIN)通常能反映发卡机构和卡组织,例如以 4 开头多为 Visa,以 62 开头多为银联,工具校验通过的同时若展示了 BIN 信息,可粗略判断卡片类型,但具体发卡行信息仍需查询官方 BIN 库确认。

使用提示

出于隐私和资金安全考虑,任何时候都不建议在网页工具中输入真实完整的银行卡号,测试和演示请使用公开发布的标准测试卡号。

常见问题

Luhn 算法是怎么校验的?
从卡号最后一位开始向左,对偶数位(第 2、4、6...位)数字乘以 2,若结果大于 9 则减去 9,再把所有位相加求和,若总和能被 10 整除即通过校验,这是银行卡、信用卡号的通用校验方式。
校验通过就说明这张卡真实存在吗?
不能。Luhn 校验只能验证卡号的数字组合是否符合编码规则,无法确认该卡号是否真实开卡、是否属于某人,请勿以此作为身份或资金安全判断依据。
数据会上传吗?
不会。校验全部在浏览器本地用 JavaScript 计算完成,不发起任何网络请求。
这个工具安全吗,我的卡号会被上传吗?
这类校验计算逻辑很简单,通常在浏览器本地用 JavaScript 完成,不需要联网查询即可得出结果;但出于谨慎,仍不建议把真实完整卡号输入任何第三方网页工具,测试时优先使用公开发布的示例测试卡号。
为什么有的真实卡号在这里显示校验不通过?
可能是输入时多打、少打或输错了某一位数字,也可能是该号码本身不遵循标准 Luhn 规则(极少数发卡机构存在例外情况),遇到这种情况应以银行官方渠道确认为准。
信用卡和储蓄卡的校验规则一样吗?
绝大多数银行卡、信用卡都统一使用 Luhn 算法做校验位计算,这是 ISO/IEC 7812 标准的一部分,储蓄卡和信用卡在这一点上没有区别。

相关工具

← 返回工具箱· 数据均在浏览器本地处理,不上传服务器。