python验证身份证信息实例代码

  

的身分证   

验证身份证号码的正确性,不能仅仅通过正则表达式来验证,我们都知道我国的身份证一共是18位,由十七位数字本体码和一位校验码组成。

  

其排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码。

  
      <李>地址码(身份证号码前六位),表示编码对象常住户口所在县(市、旗、区)的行政区域划分代码,按GB/T2260的规定执行.1-2位省,自治区,直辖市代码,3 - 4位地级市,盟,自治州代码;5 - 6位县,县级市,区代码。   <李>出生日期码(身份证号码第七位到第十四位),表示编码对象出生的年,月,日,按GB/T7408的规定执行,年,月,日代码之间不用分隔符。   <李>顺序码(身份证号码第十五位到十七位),表示在同一地址码所标识的区域范围内,对同年,同月,同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。   <李>校验码(身份证号码最后一位),是根据前面十七位数字码,按照ISO 7064:1983。国防部的佳绩校验码计算出来的检验码。如果某人的尾号是0 - 9,都不会出现X,但如果尾号是10,那么就得用X来代替,X是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。
      李   
  

校验码计算步骤

  

十七位数字本体码加权求和公式
  S=总和(Ai * Wi),我=0,…,16日,先对前17位数字的权求和

  

Ai:表示我第位置上的身份证号码数字值(0 ~ 9)

  

Wi: 7 8 9 10 5 4 3 2 1 6 7 8 9 10 5 4 2(表示我第位置上的加权因子)

  

计算模
  Y=国防部(年代,11)

  

根据模,查找得到对应的校验码
  Y: 0 1 2 3 4 5 6 7 8 9 10

  

校验码:1 0 X 9 8 7 6 5 4 3 2

  

对应的代码校验如下:

  

Java
  

        公开课IdentityCard {   int[]重量={7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2};//十七位数字本体码权重   char[]有效={' 1 ',' 0 ',' X ', ' 9 ', ' 8 ', ' 7 ', ' 6 ', ' 5 ', ' 4 ', ' 3 ', ' 2 '};//mod11,对应校验码字符值///卡是除去最后一位前17位的号码   公共字符getValidateCode(字符串卡){   int和=0;   int模式=0;   for (int i=0; i< card.length();我+ +){   和=和+ Integer.parseInt (String.valueOf (card.charAt(我)))*重量(我);   }   模式=% 11总和;   返回有效(模式);   }   }   之前      python

        def get_id_card_verify_number (id_card):   因素=[7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2]   check_code_list=[1 0 ' X ' 9 8 7、6、5、4、3、2]   check_sum=总和((a * b对a、b zip(因素,(int(一)id_card [0, 1]])))   返回check_code_list [check_sum % 11]   之前      

 python验证身份证信息实例代码

  

总体代码(代码地址:https://github.com/lucas234/identity-card):

  

以上所述是小编给大家介绍的python验证身份证信息的方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留的言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

python验证身份证信息实例代码