EN
返回档案库

案例库 · 工程与运营 · 技术决策 · 1960

Luhn的mod-10校验位能捕捉按键数字的错字和换位错误

IBM的汉斯·彼得·卢恩在1960年通过交替加倍计算出一个校验位,从而捕捉几乎所有单个错误或换位错误。

IBM

那一手

手工键入的数字——如账户、卡片、执照和识别号——容易出现单个数字错误或两个数字互换,而换位错误常常能通过简单的求和校验。

汉斯·彼得·卢恩在1960年提出的算法(他在IBM期间获得专利)增加了一个基于加倍求和的校验位。每第二位数字翻倍,使得校验对位置敏感,因此能捕捉所有单数字错误和几乎所有的相邻换位错误。

校验只需重新计算总和并确认其能被十整除;无需数据库或额外数据。

为什么管用

  • 每隔一位翻倍使得校验对位置敏感,而不仅仅是对总和敏感。
  • 它能捕捉所有单数字错误和几乎所有的相邻换位错误。
  • 验证是一个简单的算术步骤,任何设备或人都可以完成。
  • 校验位很短,只占用标识符的一个字符。
值了多少附加一个由所有其他数字计算得出的位数作为校验位利落

可以搬走什么

让记录自我验证。附加一个从所有其他数字计算出的值,这样读者或机器无需查找或额外信息就能捕获错误输入。

后来呢

Luhn算法成为全球信用卡和许多标识号校验的标准。其低成本与简单数学让电话或机器能瞬间捕捉错误号码,这一思想催生了整个模数校验和家族。

资料来源

发现哪里写错了?告诉我们。

同一路聪明