免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
返回列表 回復 發帖

身分證 演算法

認識身份證字號演算法並實作『身份證字號驗證器』
1. 身分證字號變造容易,透過搜索引擎很容易找到各種演算法則或變造工具,
甚至許多學寫程式設計的學生,也多以「身分證字號產生器」,作為學寫程式
的作業。一位資管系畢業的工程師表示,網路上有許多戶證機關檢查偽卡時,
所採用的身分證字號演算法則,而許多教程式設計的書上,也都有教授如何
撰寫這樣的程式,因此理論上要產生一組「合法」的身份證字號,可說是非
常容易。
2. 我們如何確定別人跟我們說的身份證字號是正確的呢?其實我們的身份證字
號中的最後一個數字是一個很神奇的數字,它可以用來做為檢查的功能。仔
細看看以下我們的介紹 您就可以瞭解箇中含意了。
3. 我們身份證的而各碼有其不同的意義,第一個英文字是代表出生縣市的代
號;而在數字方面,第一個數字1 是指男生2 指女生。至於後面其他數字也
各有其意義,有一組換算的代數公式,可以來檢查是否符合檢查碼,所以若
是你在檢查碼上動手腳,經過驗算很快就可以知道了。
縣市別 英文代號 數字編碼 縣市別 英文代號 數字編碼
台北市 A 10 南投縣 M 21
台中市 B 11 彰化縣 N 22
基隆市 C 12 雲林縣 P 23
台南市 D 13 嘉義縣 Q 24
高雄市 E 14 台南縣 R 25
台北縣 F 15 高雄縣 S 26
宜蘭縣 G 16 屏東縣 T 27
桃園縣 H 17 花蓮縣 U 28
新竹縣 J 18 台東縣 V 29
苗栗縣 K 19 澎湖縣 X 30
台中縣 L 20 陽明山 Y 31
新竹市 O 35 嘉義市 I 34
檢查碼的計算公式:
1. 先依照上表將英文字母代號換為數字。
2. 由左至右,第一位乘一,第二位乘九,第三位乘八,第四位乘
七以此類推最後一位乘一。
3. 將各位相對數字所乘之積相加。
4. 將上式3 所得之和除以十求得餘數。
5. 以十減去上式4 所得餘數即為檢查號。
範例: F212345674
1. 換算為 15 2 1 2 3 4 5 6 7
2. (1*1)+(5*9)+(2*8)+(1*7)+(2*6)+(3*5)+(4*4)+(5*3)+(6*2)+(7*1)
3. 總和為146
4. (146/10) = 14 餘 6
5. 10 - 6 = 4
即為檢查號碼 因此我們可以確定此身份證號碼是正確無誤的。
現在您是否有興趣將自己的身份證號碼檢算一下,看看是否吻合尾數
這檢查碼呢?
返回列表