解析护照串码

POCHNLE<<YILI<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

G222222224CHN8510105M180101952525252<<<<<<85

 

(这两列为本人虚构的,仅作讲解使用)

 

第一行
1)P:代表Passport,即护照,共1位
2)O:被护照颁发国用于区别不同种类的护照,如果未使用则为<,共1位
3)CHN:代表中国,共3位
4)LE<<YILI<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:代表护照持有人的姓名,中文则为拼音,姓后面
加<<,然后为“名”的拼音,空下来的用<填充,直至填充满44个字符
第二行:
5)G22222222:表示护照号,即右上角的那个护照号,共9位
6)4:校验码C,具体算法见文末,共1位
7)CHN:中国代码,共3位
8)851010:出生年月日,格式为YYMMDD,共6位
9)5:校验码C,具体算法见文末,共1位
10)M:表示男性,F表示女性,共1位
11)180101:护照的过期日期,格式为YYMMDD,共6位
12)9:检验码C,具体算法见文末,共1位
13)52525252<<<<<<:共14位,个人号码,由护照颁发国各自决定其作用,不足位用<替代
14)8:校验码C,具体算法见文末,共1位

15)5:校验码X,具体算法见文末,共1位

 

校验码C的计算方法:
< A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

0 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

 

以6)处的校验码为例:
G22222222
G 2 2 2 2 2 2 2 2
7 3 1 7 3 1 7 3 1

112 6 2 14 6 2 14 6 2

 

其中第一行为位于校验码前面的一串字符,这里为G22222222,即护照号

第二行为731731731.....依次排列的数列

第三行为每列的第一行乘以第二行所得到的数值,如果第一行中有字母则按照上面的表格转换为数字然后相

第四步将第三行每个数字相加,此处得到的值为:164
第五步:用所得到的值除以10,得到的余数即为校验码C
9)处的校验码计算方法同上,只不过这里用于计算的数列为14~19位的数值,即出生日期
8 5 1 0 1 0
7 3 1 7 3 1
56 15 1 0 3 0
第三行得到的值之和为75,除以10后余数为5,所以此处的校验码为5
12)和14)处的校验码计算方法同上,所用于计算校验码的数列分别为护照过期日期和个人号码
校验码X的计算方法为:
第一行数字为依次为1~10、14~20、22~43三处的数列组成
第二行数字依然为731731731.....有序排列的数列
第三行依然为每一列第一行乘以第二行所得到的乘积
然后将三次计算所得到的结果相加,再除以10,得到的余数即为X
这里计算得到的余数为5。。

到这里就全部分析完了,各位有护照的可以拿出来算算,我的算过了就是这样的。

posted on 2018-06-13 17:09  zrSoldier  阅读(1826)  评论(2编辑  收藏