Luhn 算法 (模10校验)
用于 ICCID、IMEI、信用卡号等智能卡标识符的校验位计算与验证。
可包含或不包含校验位,工具将自动识别模式。
等待操作...
※ Luhn 算法通过加权和取模10验证,广泛用于 SIM 卡 ICCID、IMEI 等。
Luhn 算法详解
Luhn 算法(又称模 10 算法)由 IBM 科学家 Hans Peter Luhn 于 1954 年提出,是一种简单的校验和算法,用于验证各种标识号码的有效性。Luhn 算法能检测到单数字替换错误和相邻数字交换错误(除 09/90 外),广泛用于信用卡号、IMEI 号、ICCID 号等标识号码的校验。
算法步骤
1. 从右到左对每一位数字编号(第一位为校验位,第二位开始计算)。2. 从右到左,对偶数位数字(第二位、第四位等)乘以 2,若结果大于 9 则减去 9(等价于各位数字相加)。3. 将所有处理后得到的数字相加。4. 若总和模 10 等于 0,则号码有效。
例如验证信用卡号 4111111111111111:从右到左处理,偶数位乘 2 后减 9,最终所有数字之和能被 10 整除,因此该号码通过 Luhn 校验。
实际应用
- 信用卡(PAN):16 位数字,最后 1 位为 Luhn 校验位。BIN 范围:4=Visa、51-55 和 2221-2720=Mastercard、34/37=Amex、6011/65=Discover、62=UnionPay
- IMEI(国际移动设备识别码):15 位数字,最后 1 位为 Luhn 校验位。前 8 位为 TAC(型号分配码),标识设备型号和制造商
- ICCID(集成电路卡识别码):19-20 位数字,以 89 开头(电信标识),用于 SIM 卡唯一标识
- 加拿大社会保险号(SIN):9 位数字,使用 Luhn 算法校验
本工具支持计算和验证 Luhn 校验位。输入不带校验位的号码可自动计算校验位,输入完整号码可验证是否有效。在开发支付系统或 SIM 卡管理工具时,Luhn 校验是输入验证的第一道防线。
卡智通