校驗碼

維基百科,自由的百科全書

校驗碼(英語: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
  1. 計算17位數字各位數字與對應的加權因子的乘積:
  2. 計算的餘數:
  3. 計算的餘數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
  1. 計算9位數字各位數字與對應的加權因子的乘積:
    121
  2. 計算的餘數:
  3. 計算的餘數R,如果,校驗碼為字母「0」;如果,校驗碼為數字「R」:

參閱[編輯]