028 的个人资料昕中的世界照片日志列表 工具 帮助

日志


2005/11/4

大陆身份证验证规则

  大陆的身份证为18位,老的身份证是15位。
  关于身份证第18是怎么计算的,原理如下:根据〖中华人民共和国国家标准 GB 11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
  ①地址码(身份证前六位)表示编码对象常住户口所在县(市、旗、区)的行政区划代码。(所有区域的编码可以到这个网站http://www.stats.gov.cn/tjbz/index.htm查询到最新的县及县以上的行政编码资料。)
  ②生日期码(身份证第七位到第十四位)表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。例如:1981年05月11日就用19810511表示。
  ③顺序码(身份证第十五位到十七位)为同一地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。其中第十七位奇数分给男性,偶数分给女性。
校验码(身份证最后一位)是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。
 
  第十八位数字的计算方法为:
  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这11个数字。其分别对应的最后一位身份证的号码为1 0 X 9 8 7 6 5 4 3 2。
  5.通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。如果余数是10,身份证的最后一位号码就是2。
 
  例如:某男性的身份证号码是34052419800101001X。我们要看看这个身份证是不是合法的身份证。
  首先:我们得出,前17位的乘积和是189
  然后:用189除以11得出的结果是17 + 2/11,也就是说余数是2。
  最后:通过对应规则就可以知道余数2对应的数字是x。所以,这是一个合格的身份证号码。
 
  备注说明:关于大陆身份证有的人会发现前几位为什么变化了。这主要出现在中国的重庆。原有的重庆人的身份证多数以51开头。以前隶属于四川的原因。但新办的身份证可能是50开头,原因是行政区划改变所致。中国各地的行政区划代码请参考国家统计局网。http://www.stats.gov.cn/tjbz/index.htm

香港身份證驗證規則

  香港身份證信息,沒有性別信息,沒有地域信息。不過,還是有一個完整的驗證規則。
  身份證字號的樣式為XYabcdef(z),其中X可以是英文數字或是空白不填,而Y一定是英文字母,z是檢核碼為0~10的數字(當z為10的時候,則以A表示),要驗算是否為正確之身份證號碼時,第一個英文字若為空白則以58代替,若是英文字則依A=10,B=11,C=12,D=13…的順序繼續下去,第二個英文字作法亦同,然後依照以下規則算出數字後,再加上檢核碼一定會是11的倍數~
  例如:A123456(3)→58 10 123456
               =58×9+10×8+1×7+2×6+3×5+4×4+5×3+6×2
       =522+80+7+12+15+16+15+12
               =679
  679+3=682=11×62 是11的倍數,因此它是一個正確的身份證字號。
 
  又例如:AB654321(□) □是多少呢?
     AB654321(□)→10 11 654321
               =10×9+11×8+6×7+5×6+4×5+3×4+2×3+1×2
       =90+88+42+30+20+12+6+2
               =290
  ∵290÷11=26…3  
  ∴□=3
2005/11/3

台湾身份证的验证规则

  台湾身份证总共有10位数字。第一位是字母。后面九位是数字。
  台湾省份证的第一位的字母代表地区分别以A——Z表示,规则如下:(地区后面的数字为该字母转换的数字码)
  A台北市10
  B台中市11
  C基隆市12
  D台南市13
  E高雄市14
  F台北县15
  G宜兰县16
  H桃园县17
  I嘉义市34
  J新竹县18
  K苗栗县19
  L台中县20
  M南投县21
  N彰化县22
  O新竹市35
  P云林县23
  Q嘉义县24
  R台南县25
  S高雄县26
  T屏东县27
  U花莲县28
  V台东县29
  W金门县30
  X澎湖县31
  Y阳明山32
  Z连江县33

  第二位数字代表性别,男性是1,女性是2
  例如:台北市的男性身份证号码就应该是A1开头

  第三位到第九位为任意的一串数字。

  第十位为验证码。验证码的计算规则为:
  字母(ABCDEFGHJKLMNPQRSTUVXYWZIO)对应一组数(10——35)。
  令其十位数为X1,个位数为X2;D2到D9分别代表身份证号码的第二至第九位数。 
  Y=X1+9×X2+8×D2+7×D3+6×D4+5×D5+4×D6+3×D7+2×D8+1×D9
  将Y的值除以10。得出的余数结果。再用10来减去这个余数结果。就得出身份证上的最后一位数字。
  例如R123456783,R=25,
  检查公式是:
  2+5×9+1×8+2×7+3×6+4×5+5×4+6×3+7×2+8×1=167
  用167除以10求余数结果,其余数结果的个位数为7。
  用10减去7得3(检查码)。