Luhn算法计算器

使用许多卡号和标识号码采用的 Luhn Mod 10 校验和,验证数字序列。

验证号码
仅输入数字,并包含末尾校验位。

关于Luhn算法

Luhn算法是一种简单的校验和公式,用于检测数字串中的常见错误。它也称为 Mod 10 算法,因为有效序列经变换后的总和能被十整除。信用卡账号是其最广为人知的用途,但该方法也用于 IMEI 设备标识、国家身份识别系统、会员编号和其他结构化代码。本计算器只检查数学一致性,不会联系发卡机构,也不会确认账户是否存在。 验证从最右侧数字开始,该数字视为校验位。从右往左,每隔一位将数字加倍。若加倍后大于九,则减去九,这等价于将加倍结果的两位数字相加。其余位置的数字保持不变。将所有变换后的值相加,总和除以十的余数为零时,完整号码就通过Luhn校验。 例如,修改单个数字通常会改变校验和余数,使序列无效。该方法还能检测大多数相邻数字交换,覆盖许多打字错误。但它不是密码学哈希。不同的错误序列可能有相同余数,任何人也都能刻意构造可通过校验的校验位。因此,Luhn验证应作为早期数据质量检查,绝不能作为身份、授权、真实性或可用资金的证明。 计算器在浏览器本地处理数字。输入完整号码,包含现有的末尾校验位,然后选择“验证号码”。结果会说明变换后的总和是否能被十整除,并显示余数。余数为一至九时,表示号码不满足校验和要求。示例使用已公开的测试型数字序列,而非真实账户资料。 如果合成测试号码已能满足需求,请勿向工具输入敏感的真实金融数据。虽然本实现不执行网络查询,良好的安全实践仍要求尽量减少账户标识的暴露。开发者可在测试表单验证时使用本计算器,支持团队可使用脱敏示例排查抄录错误,学生则可跟随运算理解加权校验和。通过测试只说明序列符合Luhn公式,后续仍需进行适当且安全的业务验证。

Luhn算法示例

号码结果说明
4532015112830366有效变换后的数字总和余数为零。
4532015112830367无效修改末位数字后,校验和余数变为一。
79927398713有效这个经典演示序列满足 Mod 10 校验。
79927398714无效修改后的校验位不再满足校验和要求。

如何用Luhn算法验证号码

  1. 输入完整数字序列,包括末尾校验位。
  2. 确认输入仅含数字,没有空格或标点。
  3. 选择“验证号码”,从右侧开始隔位加倍。
  4. 查看有效性提示和校验和余数。

Luhn算法常见问题

通过Luhn校验能证明什么?

只能证明数字序列满足 Mod 10 校验和。不能证明账户存在、处于有效状态或属于任何人。

哪一位是校验位?

在完整的Luhn保护序列中,最右侧数字通常是校验位。使用本验证器时请包含它。

Luhn算法能检测哪些错误?

它能检测所有单个数字替换和大多数相邻数字换位,但不能检测所有可能的多位数字变化。

Luhn是安全或加密算法吗?

不是。它是公开的错误检测公式,不提供保密或身份认证。安全系统必须单独进行授权和发卡机构检查。

可以验证含空格或连字符的号码吗?

本计算器有意仅接受数字,以确保输入内容明确无歧义。验证前请去除格式字符。