校验码通常是一组数字的最后一位,由前面的数字通过某种运算得出,用以检验该组数字的正确性。常见的校验码有中华人民共和国居民身份证的最后一位,ISBN号码的最后一位等。
凡设有校验码的代码,是由本体码与校验码两部分组成(如组织机构代码),本体码是表示编码对象的号码,校验码则是附加在本体码后边,用来校验本体码在输入过程中准确性的号码。每一个本体码只能有一个校验码,校验码通过规定的数学关系得到。
系统内部预先设置根据校验方法所导出的校验公式编制成的校验程序,当带有校验码的代码输入系统时,系统利用校验程序对输入的本体码进行运算得出校验结果之后,再将校验结果与输入代码的校验码进行对比来检测输入的正确与否。如果两者一致,则表明代码输入正确,系统允许进入,如果不一致,则表明代码输入有误,系统拒绝进入,并要求代码重新输入。
不同的校验码的算法常常不同。常见的校验码算法有:码距、奇偶检验、海明校验、循环
冗余校验等
计算17位数字各位数字与对应的加权因子的乘积的和S:1×7+2×9+3×10+4×5+5×8+6×4+7×2+8×1+9×6+0×3+1×7+2×9+3×10+4×5+5×8+6×4+7×2=368;计算S÷11的
余数T:368mod11=5;计算(12-T)÷11的余数R,如果R=10,校验码为字母“X”;如果R≠10,校验码为数字“R”:(12-5)mod11=7。该17位数字的校验码就是7,聚合在一为123456789012345677。
当MOD函数值为1(即C9=10)时,校验码应用大写拉丁字母“X”表示;当MOD函数值为0(即C9=11)时,校验码仍用“0”表示;当C9的值为1至9时,校验码直接用C9的值表示。