Luhn 算法校验工具
Luhn 仅验证校验位,不代表卡片仍然有效。
Luhn算法(ISO/IEC 7812-1)是一种校验码,可保护信用卡号、IMEI设备标识符、加拿大SIN号码、美国NPI号码以及其他多种编号格式免受单个数字输入错误的影响。只需输入一个数字序列(空格和连字符均不计入),校验工具便会判断该数字是否通过验证,并自动执行倍增与求和运算步骤;如需手动核验,亦可随时进行。
Luhn校验码的计算方法
-
1
去除非数字字符
空格、连字符和点会被移除,仅计入数字 0–9。
-
2
从右开始将每个第二位数字翻倍
从倒数第二个数字开始,每隔一位数字均翻倍。
-
3
将每个被加倍数值的各位数字相加。
若倍增结果为14,则需加1 + 4 = 5;这等价于从任何大于等于10的倍数值中减去9。
-
4
所有最终计算结果的总和
将加倍后的数字、减去后的数字以及未改变的数字相加。
-
5
检查是否能被 10 整除
如果总数以0结尾,则该数字有效;否则无效。
工作示例
检查 4539 1488 0343 6467:
| 位置(右→左) | 数字 | 是否加倍? | 值 |
|---|---|---|---|
| 1 | 7 | 否 | 7 |
| 2 | 6 | 是 | 12 → 3 |
| 3 | 4 | 否 | 4 |
| 4 | 6 | 是 | 12 → 3 |
| 5 | 3 | 否 | 3 |
| 6 | 4 | 是 | 8 |
| 7 | 3 | 否 | 3 |
| 8 | 0 | 是 | 0 |
| 9 | 8 | 否 | 8 |
| 10 | 8 | 是 | 16 → 7 |
| 11 | 4 | 否 | 4 |
| 12 | 1 | 是 | 2 |
| 13 | 9 | 否 | 9 |
| 14 | 3 | 是 | 6 |
| 15 | 5 | 否 | 5 |
| 16 | 4 | 是 | 8 |
总数:80。80 ÷ 10 = 0 → 有效。
使用 Luhn 的场景
| 系统 | 长度 | 是否受Luhn保护? |
|---|---|---|
| Visa、Mastercard、Discover | 13–19 位数字 | 是 |
| 美国运通卡 | 15位数字 | 是 |
| IMEI(GSM设备识别码) | 15位数字 | 是 |
| 加拿大社会保险 | 9位数字 | 是 |
| 美国国家服务提供者标识符 | 10位数字 | 是 |
| 以色列身份证(Teudat Zehut) | 9位数字 | 是 |
| ISBN-13 | 13位数字 | 否(采用模10运算,权重为1和3) |
Luhn 检测到但遗漏的内容
- **可检测内容:**所有个位数错误,以及大多数(但非全部)相邻数字的调位情况。
- 遗漏项: 位置互换 09 ↔ 90 及若干类似组合。此为拼写检查,非安全验证。
- **并非安全功能。**生成Luhn有效号码十分简单。支付网关中的PAN验证采用发卡机构代码范围、 CVV 码、 AVS 码及3D安全码等多种方式,而不仅限于Luhn码。
常见问题
不。Luhn仅验证号码在数学上是否格式正确,并无法判断该卡是否已发行、是否持有资金或是否被盗。真正的验证过程发生在发卡机构进行授权时。
没错,末位数字即校验位,可随时设置为使总和能被10整除。这正是IMEI生成器及测试卡号码的工作原理。
该方法能够检测所有个位数替换以及大多数相邻数字的置换,但少数组合(如09 ↔ 90)会使校验和保持不变。更稳健的方案(如ISBN-13、Verhoeff方案、Damm方案)则以增加计算复杂度为代价来提升错误检测能力。
该验证工具完全在您的浏览器中运行,因此无需传输任何数据,但随意粘贴真实的PAN号码属于不良习惯。进行测试时,请使用示例号码(例如:4242 4242 4242 4242)。
Luhn支持任意长度,但针对特定方案(通常为9至19位数字)进行了标准化。该校验器不设置长度上限。
相关工具
ASCII 表参考
完整 ASCII 表,覆盖 0 到 127;列出每个代码的十进制、十六进制、八进制、二进制值和 HTML 数字字符引用写法,包括 NUL、LF、DEL。
HTML 字符参考
可搜索的 HTML 实体列表,含命名代码与数值代码,并支持一键复制特殊字符和符号。
键盘快捷键参考
搜索 macOS、Windows 和 Linux 上 VS Code、Chrome 以及使用 GNU Readline 的 Bash 的文档默认快捷键。
邮箱验证器
验证邮箱地址:RFC 5322 语法检查、实时 MX 记录查询,并显示本地部分、域名和长度详情。不会发送任何邮件。
编辑器配置生成器
根据你的缩进样式与大小、行尾、字符集和空格规则生成 .editorconfig 文件,让不同集成开发环境(IDE)和编辑器的格式保持一致。
证书解码器
粘贴一张 X.509 PEM 证书,并查看解码后的字段:主体、颁发者、序列号、签名算法、有效期及主体备用名称(SAN)。
此工具还提供其他语言版本
- Pemeriksa Algoritma Luhn [ID]
- Luhnアルゴリズムチェッカー [JA]
- เครื่องตรวจสอบอัลกอริทึมของ Luhn [TH]
- Trình kiểm tra thuật toán Luhn [VI]
- Luhn-Algorithmus-Prüfer [DE]
- Luhn 알고리즘 검사기 [KO]
- Walidator algorytmu Luhna [PL]
- Validador do Algoritmo de Luhn [PT]
- Verificador del Algoritmo de Luhn [ES]
- Luhn-algoritmens kontrollverktyg [SV]
- أداة فحص خوارزمية Luhn [AR]
- Vérificateur d'algorithme de Luhn [FR]
- Luhn-algoritme-checker [NL]
- Проверка по алгоритму Луна [RU]
- Luhn Algoritma Kontrolcüsü [TR]
- Luhn Algorithm Checker [EN]
- Controllore dell'Algoritmo di Luhn [IT]