校驗碼系統是產生校驗碼並校驗包括校驗碼在內的字符串的一套規則。它可以防止在抄錄和鍵入字符串時產生的錯誤。
- 單一字符替代錯誤,如1234被錯錄為4234
- 單一字符對換錯誤,如12345被錯錄為12354或12543
- 位移錯誤,如_123被錯錄為123_
- 雙替代錯誤,如1234567被錯錄為7234587
表示方法 |
適用範圍 |
校驗碼數目及類型
|
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:模數
字符 |
數字字符值 |
字母字符值 |
字母數字字符值 |
備註
|
0 |
0 |
|
0 |
|
1 |
1 |
|
1 |
|
2 |
2 |
|
2 |
|
3 |
3 |
|
3 |
|
4 |
4 |
|
4 |
|
5 |
5 |
|
5 |
|
6 |
6 |
|
6 |
|
7 |
7 |
|
7 |
|
8 |
8 |
|
8 |
|
9 |
9 |
|
9 |
|
X |
10 |
|
|
ISO 7064 MOD 11-2設置的附加碼
|
A |
|
0 |
10
|
B |
|
1 |
11
|
C |
|
2 |
12
|
D |
|
3 |
13
|
E |
|
4 |
14
|
F |
|
5 |
15
|
G |
|
6 |
16
|
H |
|
7 |
17
|
I |
|
8 |
18
|
J |
|
9 |
19
|
K |
|
10 |
20
|
L |
|
11 |
21
|
M |
|
12 |
22
|
N |
|
13 |
23
|
O |
|
14 |
24
|
P |
|
15 |
25
|
Q |
|
16 |
26
|
R |
|
17 |
27
|
S |
|
18 |
28
|
T |
|
19 |
29
|
U |
|
20 |
30
|
V |
|
21 |
31
|
W |
|
22 |
32
|
X |
|
23 |
33
|
Y |
|
24 |
34
|
Z |
|
25 |
35
|
* |
|
26 |
36 |
ISO 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)
|
1 |
0 |
+ |
0 |
= |
0 |
|
0 |
× |
2 |
= |
0
|
2 |
0 |
+ |
7 |
= |
7 |
|
7 |
× |
2 |
= |
14
|
3 |
14 |
+ |
9 |
= |
23 |
|
23 |
× |
2 |
= |
46
|
4 |
46 |
+ |
4 |
= |
50 |
|
50 |
× |
2 |
= |
100
|
最後,100+校驗碼值要與1(mod 11)同餘,所以校驗碼為0,整個受保護字符串為07940。
- 多項式法
- 權數
- 權數公式:
- 前15個位置的權數見下表:
位置序號 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1
|
ISO 7064,MOD 11-2 |
5 |
8 |
4 |
2 |
1 |
6 |
3 |
7 |
9 |
10 |
5 |
8 |
4 |
2 |
1
|
ISO 7064,MOD 37-2 |
30 |
15 |
26 |
13 |
25 |
31 |
34 |
17 |
27 |
32 |
16 |
8 |
4 |
2 |
1
|
ISO 7064,MOD 97-10 |
53 |
15 |
50 |
5 |
49 |
34 |
81 |
76 |
27 |
90 |
9 |
30 |
3 |
10 |
1
|
ISO 7064,MOD 661-26 |
129 |
488 |
273 |
341 |
547 |
199 |
389 |
498 |
70 |
562 |
225 |
390 |
15 |
26 |
1
|
ISO 7064,MOD 1271-36 |
769 |
904 |
590 |
87 |
532 |
156 |
428 |
718 |
373 |
893 |
625 |
900 |
25 |
36 |
1
|
- 用多項式法,按規則MOD 11-2為字符串0794設置一個校驗碼:
字符位置i |
5 |
4 |
3 |
2 |
1
|
權數2(i-1)(mod 11) |
5 |
8 |
4 |
2 |
1
|
字符值ai |
0 |
7 |
9 |
4 |
|
乘積 |
0 |
56 |
36 |
8 |
|
乘積之和 |
|
|
|
|
100
|
乘積之和加上校驗碼必須與1(模11)同餘,所以校驗碼為0,整個字符串為07940
- ^ 存档副本. www.iso.org. [2021-02-08]. (原始內容存檔於2021-02-08).