信用卡验证完全指南
什么是 Luhn 算法?
Luhn 算法(也称为 MOD 10 算法)由 Hans Peter Luhn 于 1954 年在 IBM
发明,是一种简单的校验和公式,用于验证各种识别号码,尤其是信用卡号码。时至今日,所有主要信用卡(Visa、Mastercard、American
Express、Discover 等)都使用这一算法生成和验证卡号。
Luhn
算法并非加密算法,它的设计目的是检测数字输入时的意外错误,例如单个数字错误或相邻数字互换。任何单个数字的错误都能被
Luhn 算法检测到。
Luhn 算法的步骤
- 从卡号最右侧(校验位)开始,每隔一位(即位置为偶数位)的数字乘以 2
- 如果乘以 2 的结果大于 9,则减去 9
- 将所有数字(包括未乘以 2 的)相加
- 如果总和能被 10 整除(即总和 mod 10 = 0),则该号码通过 Luhn 校验
常见信用卡号码规则
Visa:
以数字 4 开头,卡号长度为 13 或 16 位。
Mastercard:
以 51-55 或 2221-2720 范围内的数字开头,长度为 16 位。
American Express:
以 34 或 37 开头,长度为 15 位。
Discover:
以 6011 或 65 开头,长度为 16 位。
JCB:
以 3528-3589 开头,长度为 16 位。
MII:主要行业标识符
信用卡号码的第一位数字称为 MII(Major Industry
Identifier,主要行业标识符),它指示了发卡行所在的行业:
- 0:ISO/TC 68 和其他行业
- 1-2:航空公司
- 3:旅行和娱乐(Amex、Diners Club)
- 4-5:银行和金融(Visa、Mastercard)
- 6:商业和银行(Discover、银联)
- 7:石油公司
- 8:医疗保健和电信
- 9:国家和政府
Luhn 验证通过 ≠ 真实卡号
重要提示:通过 Luhn
算法验证只说明卡号的格式是合法的,不代表该卡号真实存在或可用于交易。实际的信用卡验证需要通过银行授权系统进行验证。本工具仅供学习和测试目的使用。
如何使用本工具
- 在输入框中输入信用卡号码(支持带空格格式)
- 点击「验证」或按 Enter 键
- 工具将显示:是否通过 Luhn 校验、卡片类型、MII 信息、Luhn 算法详细计算步骤
- 点击示例按钮可快速测试各种卡类型
隐私安全说明
本工具完全在您的浏览器中运行,不会将任何卡号信息发送到服务器。所有验证逻辑均为纯前端
JavaScript 实现。请放心使用,但仍建议不要在公共网络环境中输入真实信用卡信息。
常见问题
Q:为什么 Luhn 验证通过但银行拒绝了?
A:Luhn
算法只验证格式,不验证账户是否存在、是否有效或是否有余额。实际交易授权需要通过银行系统。
Q:可以用于测试支付系统吗?
A:可以用于验证支付系统的前端格式校验功能,但实际支付集成测试应使用各支付平台提供的沙箱测试卡号。
Q:信用卡号码的最后一位是什么?
A:最后一位称为校验码(Check Digit),由 Luhn
算法根据前面所有数字计算得出,用于检测输入错误。