核對碼(英語:Check digit)通常是一組數字的最後一位,由前面的數字通過某種運算得出,用以檢驗該組數字的正確性。常見的核對碼有中華人民共和國居民身份證的最後一位,ISBN號碼的最後一位等。
各地身份證演算法
不同的核對碼的演算法常常不同,下面以身份證的核對碼為例
中國大陸
按照中華人民共和國國家標準GB11643-1999規定中華人民共和國公民身份號碼核對碼的計算方法即為ISO 7064:1983.MOD 11-2核對碼計演算法。
假設某一17位數字是
17位數字 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7
|
加權因子 |
7 |
9 |
10 |
5 |
8 |
4 |
2 |
1 |
6 |
3 |
7 |
9 |
10 |
5 |
8 |
4 |
2
|
- 計算17位數字各位數字與對應的加權因子的乘積:
- ;
- 計算的餘數:
- ;
- 計算的餘數R,如果,核對碼為字母「X」;如果,核對碼為數字「R」:
- 。
該17位數字的核對碼就是7,聚合在一為123456789012345677。
台灣
台灣身份證核對碼計算方法如下
英文字母加8位元數字 |
A=10 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8
|
加權因子 |
1、9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1
|
- 計算9位數字各位數字與對應的加權因子的乘積:
- 121
- 計算的餘數:
- ;
- 計算的餘數R,如果,核對碼為字母「0」;如果,核對碼為數字「R」:
- 。
參閱