🔍

首页 › 使用教程 › 生活实用

银行卡号校验教程:用 Luhn 算法检查卡号是否输错、识别卡组织

发布于 · 阅读约 2 分钟 · 用到的工具:银行卡号校验(Luhn)

一句话答案

银行卡号最后一位是按 Luhn 算法算出的校验码,能发现大多数单个数字输错和相邻数字颠倒。卡号 4111 1111 1111 1111(常用的测试卡号)校验通过,把最后一位改成 2 就会校验失败。校验通过只说明格式正确,不代表卡片存在或可用。

本文目录
  1. 校验卡号
  2. Luhn 算法怎么算
  3. 能发现哪些错误
  4. 卡号开头和卡组织
  5. 校验通过不等于真实
  6. 常见问题

校验卡号

  1. 输入卡号:打开 银行卡号校验,在输入框粘贴卡号,每行一个,可以带空格。
  2. 看结果:每行显示“✔ 有效”或“✘ 校验失败”,并识别卡组织(银联、Visa、Mastercard 等)。
  3. 复制结果:点击“复制结果”可以复制校验结果。
4111 1111 1111 1111 校验通过(Visa),末位改为 2 后校验失败;支付平台公开的银联测试卡号 6200 0000 0000 0005 校验通过
4111 1111 1111 1111 校验通过(Visa),末位改为 2 后校验失败;支付平台公开的银联测试卡号 6200 0000 0000 0005 校验通过
💳 银行卡号校验(Luhn)
免费在线使用,文件和数据只在你的浏览器本地处理,无需注册。
打开工具 →

Luhn 算法怎么算

以 16 位卡号为例,从右往左数(最右边是校验位,记为第 1 位):

  1. 偶数位(第 2、4、6……位)的数字乘以 2,结果大于 9 的减去 9;
  2. 奇数位(含校验位)的数字不变;
  3. 把所有数字相加,总和能被 10 整除就校验通过。

4111 1111 1111 1111:偶数位 8 个数字分别为 4 和 7 个 1,乘 2 后为 8 和 7 个 2,合计 22;奇数位 8 个 1 合计 8;总和 30,能被 10 整除,校验通过。

能发现哪些错误

  • 任意一位数字输错:都能发现;
  • 相邻两位颠倒:除 09 和 90 互换外都能发现;
  • 多位同时出错:大部分能发现,但不能保证。

卡号开头和卡组织

开头卡组织(常见)
62银联 UnionPay
4Visa
51–55、2221–2720Mastercard
34、37American Express
3528–3589JCB

国内借记卡多为 16 至 19 位,前 6 位(发卡行识别码 BIN)可以对应发卡行。

校验通过不等于真实

Luhn 只是防止输错的简单校验,任何人都可以按规则凑出“校验通过”的号码。卡片是否真实、是否可用,只能由发卡行确认。身份证号也有类似的校验码,见 身份证校验码教程。

常见问题

转账前怎么确认收款卡号?

先用校验工具排除输错,再核对收款人姓名和开户行;大额转账可以先转小额确认。

卡号校验失败一定是输错了吗?

绝大多数情况是输错或少输了一位,请对照卡面重新输入。

存折账号能校验吗?

部分账号不使用 Luhn 规则,校验结果仅供参考。

统一社会信用代码怎么校验?

见 统一社会信用代码校验教程。