我需要选择一个校验和算法来检测用户何时通过在代码末尾添加 1 个字符(也在 [A-Z0-9] 中)输入错误的 4 个字符 [A-Z0-9] 代码。
对 ASCII 代码求和并应用模数是一个糟糕的解决方案,因为不会注意到反转 2 个击键。
我可能会使用 Fletcher 算法,但我想知道是否有人知道为此用例设计的算法(非常少量的字节,取决于位置)?
谢谢你。
您可以尝试 ISO 7064 Mod x,y 算法。根据 ISO 描述:
ISO/IEC 7064:2002 中指定的校验字符系统可以检测 ( http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=31531 ):
您可以找到一些部分实现,例如:
例如,您可以使用 ISO 7064 Mod 37,36,它可以使用 0-9 和 AZ(数据和校验字符)。算法的详细描述(如果您不想购买 ISO)可以在以下位置找到: