编码解码哈希加密格式化时间转换开发生成文本处理网络工具其他工具
首页 / 名词解释 / Luhn算法

Luhn算法

Luhn 算法(又称模 10 算法、模 10 校验、Luhn 校验)是一种简单的校验和公式,由 IBM 工程师 Hans Peter Luhn 于 1954 年提出,用来检测数字串在手动录入时产生的偶然错误。它最广为人知的用途是校验银行卡(信用卡)号,此外 IMEI 手机串号、部分国家的社保号等也常用它做末位校验。

计算方法是从最右侧的校验位开始向左编号:把从右往左数第 2、4、6… 位的数字翻倍,若翻倍后大于 9 就减去 9(等价于把结果的两位数各位相加);再将所有数字求和,若总和能被 10 整除,该号码即通过校验。生成校验位时,反过来推出能让总和成为 10 倍数的那一位即可。

使用要点与常见误区:

常见问题

Luhn 算法能防止银行卡被盗刷或伪造吗?
不能。它只是校验和,用来发现录入时的偶然错误,任何人都能按规则造出「通过校验」的号码。真正的安全要靠加密、CVV、3D 验证等手段。
号码通过了 Luhn 校验,是不是就说明卡是真的、能用?
不是。通过校验只说明位数和末位符合格式规则,卡是否真实开户、有效期、余额等都要由发卡行或支付网关进一步确认。
Luhn 为什么归在「哈希加密」分类下,它算加密算法吗?
严格说不算。它本质是错误检测的校验和,不涉及密钥,也不对数据做不可逆保护;归在这里只是因为它常和编码、校验类工具放在一起。

相关工具

相关名词