Python校驗身份證號碼有效性

Python校驗身份證號碼有效性

15位身份證號,構成如下

  • 1~6位:地址碼,採用的是行政區劃代碼
  • 7~12位:出生日期碼。構成為yymmdd,如921010
  • 13~15位:順序碼。每個地區出生人口按順序遞增,最後一位奇數分給男的,偶數分給女的。

18位身份證號,進行調整 如下

  • 出生日期碼變為8位,構成為yyyymmdd。,如19921010
  • 增加第18位為校驗碼,校驗碼是根據前面十七位數字碼,按照ISO 7064:1983.MOD 11-2校驗碼計算得來。

校驗碼計算方法

  • 將身份證號碼的前17位數分別乘以不同的係數。從第一位到第十七位的係數分別為
7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 
  • 將這17位數字和係數相乘的結果相加求和,用加出來和除以11,得到餘數。
  • 根據餘數的結果Y,取對應的值,作為校驗碼
Python校驗身份證號碼有效性

餘數與校驗碼映射關係

python源碼

Python校驗身份證號碼有效性


分享到:


相關文章: