标点符(钱魏 Way)

PHP身份证校验

公民身份号码是由17位数字码和1位校验码组成。排列顺序从左至右分别为:6位地址码,8位出生日期码,3位顺序码和1位校验码。地址码(身份证地址码对照表见下面附录)和出生日期码很好理解,顺序码表示在同一地址码所标识的区域范围内,对同年同月同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。15位的身份证编码首先把出生年扩展为4位,简单的就是增加一个19,但是这对于1900年出生的人不实用。

身份证最后一位校验码算法如下:

  1. 将身份证号码前17位数分别乘以不同的系数,从第1位到第17位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
  2. 将得到的17个乘积相加。
  3. 将相加后的和除以11并得到余数。
  4. 余数可能为0 1 2 3 4 5 6 7 8 9 10这些个数字,其对应的身份证最后一位校验码为1 0 X 9 8 7 6 5 4 3 2。

国家统计局县及县级以上行政区划代码:http://www.stats.gov.cn/tjbz/index.htm

码字很辛苦,转载请注明来自标点符《PHP身份证校验》

评论