我需要选择校验和算法,通过在代码末尾添加1个字符来检测用户输错4字符[A-Z0-9]代码的时间(同样在[A-Z0-9]中)。
求和ASCII码并应用模数是一个不好的解决方案,因为不会注意到反转2个击键。
我可能会使用Fletcher算法,但我想知道是否有人知道为这个用例设计的算法(非常少量的字节,位置相关)?
谢谢。
答案 0 :(得分:8)
您可以尝试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和A-Z(数据和校验字符)。有关算法的详细说明(如果您不想购买ISO),请参阅: