校验码系统

校验码系统是产生校验码并校验包括校验码在内的字符串的一套规则。它可以防止在抄录和键入字符串时产生的错误。

查错类型

  • 单一字符替代错误,如1234被错录为4234
  • 单一字符对换错误,如12345被错录为12354或12543
  • 位移错误,如_123被错录为123_
  • 双替代错误,如1234567被错录为7234587

类型

ISO 7064校验码系统[1]

  • 纯系统
表示方法适用范围校验码数目及类型
ISO 7064 Mod 11-2数字型字符串1位数字或附加符X
ISO 7064 Mod 37-2字母数字型字符串1位数字或字母或附加符*
ISO 7064 Mod 97-10数字型字符串2位数字
ISO 7064 Mod 661-26字母型字符串2位字母
ISO 7064 Mod 1271-36字母数字型字符串2位数字或字母
  • 混合系统
表示法应用字符数目及类型
ISO 7064 MOD 11,10数字串1位数字
ISO 7064 MOD 27,26字母串1位字母
ISO 7064 MOD 37,36字母数字串1位数字或字母

计算方法

纯系统

  • 纯系统字符串满足此公式的校验:
    • n:字符串的字符个数(包括校验码)
    • i:字符位置序号(由右至左,包括校验码,空格与分隔符不及),即最右边的字符i=1
    • ai:字符值(见下表)
    • r:底数,几何级数的基数
    • M:模数
字符数字字符值字母字符值字母数字字符值备注
000
111
222
333
444
555
666
777
888
999
X10ISO 7064 MOD 11-2设置的附加码
A010
B111
C212
D313
E414
F515
G616
H717
I818
J919
K1020
L1121
M1222
N1323
O1424
P1525
Q1626
R1727
S1828
T1929
U2030
V2131
W2232
X2333
Y2434
Z2535
*2636ISO 7064 MOD 37-2设置的附加符
  • 一位校验码计算
    • 用递归法,按规则MOD 11-2为字符串0794设置一个校验码,此时M=11,r=2,n=5:
步骤j前次运行结果Pj+下一字符值a(n-j+1)=中间和Sj中间和Sj×底数r=运算结果P(j+1)
10+0=00×2=0
20+7=77×2=14
314+9=2323×2=46
446+4=5050×2=100

最后,100+校验码值要与1(mod 11)同余,所以校验码为0,整个受保护字符串为07940

    • 多项式法
      • 权数
        • 权数公式:
        • 前15个位置的权数见下表:
位置序号151413121110987654321
ISO 7064,MOD 11-25842163791058421
ISO 7064,MOD 37-230152613253134172732168421
ISO 7064,MOD 97-1053155054934817627909303101
ISO 7064,MOD 661-261294882733415471993894987056222539015261
ISO 7064,MOD 1271-367699045908753215642871837389362590025361
      • 用多项式法,按规则MOD 11-2为字符串0794设置一个校验码:
字符位置i54321
权数2(i-1)(mod 11)58421
字符值ai0794
乘积056368
乘积之和100

乘积之和加上校验码必须与1(模11)同余,所以校验码为0,整个字符串为07940

  • 两位校验码
    • 递归法
    • 多项式法
  1. . www.iso.org. [2021-02-08]. (原始内容存档于2021-02-08).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.