你知道身份證是如何防僞的嗎?

博主個人網站:http://www.dzyong.top

微信公衆號:《前端筱園》

​今天我們來講一個有意思的話題,我們的身份證是如何防僞的。

在身份證正面印有簽發機關和有效日期。背面則有姓名、性別、民族、出生日期、住址、頭像等信息,而最重要的就是身份證號

身份證號碼如何定出來的?

身份證號碼在你辦理出生戶口登記時就已經訂好了,共有18位。可以把它們分爲四段。

1-6位是地址碼:根據中國的行政區代碼,每兩位一組,分別代表了你出生地點所在的省市縣級行政區。

7-14位是出生日期碼:代碼表了你出生日期的年月日。

15-17位是順序碼:爲什麼要加入這個順序碼呢,因爲同年同月同日同地出生的人不止一個,因此需要對他們進行一個順序編號,防止重號。第17位用奇數表男性,偶數表女性。

18位:這位是校驗碼,也是最爲重要的一位,他用來校驗你的身份證號碼是否真實準確,它通過1-17位共同計算得出。

如何校驗?

中國大陸採用的是MOD 11-2 校驗系統。身份證號碼的每一位都有一個固定的權重係數,等於2的18-i 次方除以11的餘數(i爲各個號碼的位數)。可以得到每一位的權重分(W)別爲:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。

將前17位號碼的數字與其對應的權重相乘後再相加得到數值S(本例結果爲240)。

把得到的S除以11得到餘數Y。

用12減去這個餘數Y後再除以11得到的餘數 J 就是校驗碼的數值,校驗碼的結果取值爲0-10,這裏的10我們會用羅馬數字的10即X表示,這也就是爲什麼生活中看到很多人的身份證號碼最後一位是X的原因了。

由於校驗碼是由前17位的數值通過計算得出的,因此,你如果在錄入時,前面輸錯了任意一位,算出來的校驗碼與實際的無法匹配,那麼這個號碼就不能通過驗證。

是否有漏洞?

這種校驗方式也不是可以進行100%的進行校驗的,如果前面出現了兩位或兩位以上的數字被替換時,那麼是有可能計算出的校驗碼與實際是相同的。

所以如果想驗證身份證號碼是不是你本人,只單憑身份證號號碼的數字進行校驗是遠遠不夠的。還需要身份證卡片本身的校驗。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章