數字校驗防偽技術 Checksum是一種計算機防偽技術,主要應用于紙鈔序列號的機讀校驗,在驗鈔機驗鈔時,通過對序列號的號碼進行掃描,從而發現偽鈔。
目前,應用這項技術的主要是歐元。下面就以歐元為例,簡要介紹一下這項技術:
歐元的序列號由一位字母和11位數字組成。其中的前綴字母代表歐元的發行國家,在歐元中又被稱為國家識別碼。最后一位數字是校驗數字,其數值從1-9,沒有0。
1)歐元的國家識別碼與數字校驗碼
下面列表中,字母為國家識別碼,數字為數字校驗碼。
字母 F - 2 馬耳他(預留)
字母 G - 1 塞浦路斯(預留)
字母 H - 9 斯洛文尼亞
字母 I - 8 未使用
字母 J - 7 (英國)(預留)
字母 K - 6 (瑞典)(預留)
字母 L - 5 芬蘭
字母 M - 4 葡萄牙
字母 N - 3 奧地利
字母 O - 2 未使用
字母 P - 1 荷蘭
字母 Q - 9 未使用
字母 R - 8 (盧森堡)(預留)
字母 S - 7 意大利
字母 T - 6 愛爾蘭
字母 U - 5 法國
字母 V - 4 西班牙
字母 W - 3 (丹麥)(預留)
字母 X - 2 德國
字母 Y - 1 希臘
字母 Z - 9 比利時
2)校驗方法1
將序列號中的11位數字反復相加,直至相加到剩下一位數,這位數一定是等于數字校驗碼的數字。
例如:X00160921181 ,德國版歐元,國家識別碼是X,數字校驗碼是2,
11位數字相加:0+0+1+6+0+9+2+1+1+8+1=29
再相加:2+9=11
再相加:1+1=2 與德國版歐元的數字校驗碼相符。
3)校驗方法2
將序列號中的字母用相應的數字(在字母表中的排序)代替,如:L-12、T-20、X-24、Z-26等,所得到的數被9除,余數一定等于8。
例如:X00160921181
將字母用數字24代替,得到的數是2400160921181,這個數被9除,余數等于8。
有一種簡便的方法可以快速得到余數:通過將上述數字反復相加,直至相加到剩下一位數,最后得到的結果就是余數。
所有數字相加:2+4+0+0+1+6+0+9+2+1+1+8+1=35
再相加:3+5=8 這就是余數
計算機可以通過自動掃描序列號,并自動計算序列號數字之和,從而判斷紙鈔的真偽。
第三套人民幣因為是經過專家學者多年的討論和思考的產物,所以在數字防偽上的技術較之上代有了質的飛躍。