经过研究,我认为我将采用 ISO 7064 Mod 97,10 公式。由于它用于验证IBAN(国际银行帐号),因此看起来非常可靠。
公式很简单:
- 取一个数字:
123456
- 应用以下公式来获得2位数的校验和:
mod(98 - mod(number * 100, 97), 97)
=> 76 - Concat编号和校验和以获得代码=> 12345676
- 要验证代码,请验证
mod(pre, 97) == 1
测试:
mod(12345676, 97) = 1
=>好mod(21345676, 97) = 50
=>不好!mod(12345678, 97) = 10
=>不好!
显然,该算法捕获了大多数错误。
另一个有趣的选择是Verhoeff算法。它只有一个验证码,并且难以实现(与上面的简单公式相比)。



