护照 MRZ码编码规则

网友投稿 522 2022-08-21

护照 MRZ码编码规则

护照资料也下方的两行成为MRZ码(或护照机读码),每行44个字符(0-9,A-Z,<),如下例:

1 2 3 4 5 6 7 8 9 101 2 3 4 5 6 7 8 9 201 2 3 4 5 6 7 8 9 301 2 3 4 5 6 7 8 9 401 2 3 4

P O C H N Z H A N G < < S A N < < < < < < < < < < < < < < < < < < < < < < < < < < < < <

G 4 8 9 4 7 6 4 6 4 C H N 7 3 0 4 2 7 9 M 2 1 0 1 2 6 6 1 9 2 0 3 3 0 1 < < < < < < 1 6

第一行

1.P:代表护照

2.O:代表护照类型

3-5:国家代码,见最后

6-44:39位姓名,姓和名之间用<<隔开,姓(Surname)和名(Given names)若有多个单词则用<隔开,最后用<补足39个字符

第二行

1-9:护照号码

10:1-9的验证码,验证算法如下

int Compute(string source)

{

string s = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";

int[] w = new int[] { 7, 3, 1 };

int c = 0;

for (int i = 0; i < source.Length; i++)

{

if (source[i] == '<')

continue;

c += s.IndexOf(source[i]) * w[i % 3];

}

c %= 10;

return c;

}

11-13:国家代码

14-19:生日

20:生日的验证码,验证规则同上

21:性别(M:男,F:女)

22-27:护照有效期

28:护照有效期验证码

29-42:个人代码,每个国家都不一样

43:个人代码的验证码

44:第二行1-10,14-20,22-43的验证码

var line2string = "G489476464CHN7304279M210126619203301<<<<<<16";

var lastvalue = Compute(line2string.Substring(0, 10) + line2string.Substring(13, 7) + line2string.Substring(21, 22)); //lastvalue=6

附:国家代码表

ABW:阿鲁巴

AFG:阿富汗

AGO:安哥拉

AIA:安圭拉

ALA:奥兰群岛

ALB:阿尔巴尼亚

AND:安道尔

ANT:荷属安的列斯

ARE:阿联酋

ARG:阿根廷

ARM:亚美尼亚

ASM:美属萨摩亚

ATA:南极洲

ATF:法属南领地

ATG:安提瓜和巴布达

AUS:澳大利亚

AUT:奥地利

AZE:阿塞拜疆

BDI:布隆迪

BEL:比利时

BEN:贝宁

BES:博内尔岛、圣尤斯特歇斯岛和萨巴岛

BFA:布基纳法索

BGD:孟加拉国

BGR:保加利亚

BHR:巴林

BHS:巴哈马

BIH:波黑

BLM:圣巴泰勒米岛

BLR:白俄罗斯

BLZ:伯利兹

BMU:百慕大

BOL:玻利维亚

BRA:巴西

BRB:巴巴多斯

BRN:文莱

BTN:不丹

BVT:布维岛

BWA:博茨瓦纳

CAF:中非

CAN:加拿大

CB:加那利群岛

CCK:科科斯(基灵)群岛

CE:塞卜泰(休达)

CHE:瑞士

CHL:智利

CHN:中国

CIV:科特迪瓦

CMR:喀麦隆

COD:刚果(金)

COG:刚果(布)

COK:库克群岛

COL:哥伦比亚

COM:科摩罗

CPV:佛得角

CRI:哥斯达黎加

CT:坎顿和恩德贝里群岛

CUB:古巴

CUW:库拉索

CXR:圣诞岛

CYM:开曼群岛

CYP:塞浦路斯

CZE:捷克

DEU:德国

DJI:吉布提

DMA:多米尼克

DNK:丹麦

DOM:多米尼加

DZA:阿尔及利亚

ECU:厄瓜多尔

EGY:埃及

ERI:厄立特里亚

ESH:西撒哈拉

ESP:西班牙

EST:爱沙尼亚

ETH:埃塞俄比亚

FIN:芬兰

FJI:斐济

FLK:福克兰群岛(马尔维纳斯)

FRA:法国

FRO:法罗群岛

FSM:密克罗尼西亚联邦

GAB:加蓬

GBD:英国(属地公民)

GBN:英国(国民(海外))

GBO:英国(海外公民)

GBP:英国(被保护人)

GBR:英国

GBS:英国(臣民)

GEO:格鲁吉亚

GGY:根西岛

GHA:加纳

GIB:直布罗陀

GIN:几内亚

GLP:瓜德罗普

GMB:冈比亚

GNB:几内亚比绍

GNQ:赤道几内亚

GRC:希腊

GRD:格林纳达

GRL:格陵兰

GTM:危地马拉

GUF:法属圭亚那

GUM:关岛

GUY:圭亚那

HKG:中国香港

HMD:赫德岛和麦克唐纳群岛

HND:洪都拉斯

HRV:克罗地亚

HTI:海地

HUN:匈牙利

IDN:印度尼西亚

IMN:马恩岛

IND:印度

IOT:英属印度洋领地

IRL:爱尔兰

IRN:伊朗

IRQ:伊拉克

ISL:冰岛

ISR:以色列

ITA:意大利

JAM:牙买加

JEY:泽西

JI:贾维斯岛(大洋洲)

JOR:约旦

JPN:日本

JTN:约翰斯顿岛

KAZ:哈萨克斯坦

KEN:肯尼亚

KGZ:吉尔吉斯斯坦

KHM:柬埔寨

KIR:基里巴斯

KNA:圣基茨和尼维斯

KOR:韩国

KWT:科威特

LAO:老挝

LBN:黎巴嫩

LBR:利比里亚

LBY:利比亚

LCA:圣卢西亚

LIE:列支敦士登

LKA:斯里兰卡

LSO:莱索托

LTU:立陶宛

LUX:卢森堡

LVA:拉脱维亚

MAC:中国澳门

MAF:圣马丁岛(法属)

MAR:摩洛哥

MCO:摩纳哥

MDA:摩尔多瓦

MDG:马达加斯加

MDV:马尔代夫

ME:梅利利亚

MEX:墨西哥

MHL:马绍尔群岛

MID:中途岛

MKD:北马其顿

MLI:马里

MLT:马耳他

MMR:缅甸

MNE:黑山

MNG:蒙古

MNP:北马里亚纳群岛

MOZ:莫桑比克

MRT:毛里塔尼亚

MSR:蒙特塞拉特

MTQ:马提尼克

MUS:毛里求斯

MWI:马拉维

MYS:马来西亚

MYT:马约特

NAM:纳米比亚

NCL:新喀里多尼亚

NER:尼日尔

NFK:诺福克岛

NGA:尼日利亚

NIC:尼加拉瓜

NIU:纽埃

NLD:荷兰

NN:无国籍

NOR:挪威

NPL:尼泊尔

NQ:毛德地

NRU:瑙鲁

NTZ:中立区

NZL:新西兰

OMN:阿曼

PAK:巴基斯坦

PAN:巴拿马

PCN:皮特凯恩

PER:秘鲁

PHL:菲律宾

PLW:帕劳

PNG:巴布亚新几内亚

POL:波兰

PRI:波多黎各

PRK:朝鲜

PRT:葡萄牙

PRY:巴拉圭

PSE:巴勒斯坦

PUS:美属太平洋群岛

PYF:法属波利尼西亚

PZ:巴拿马运河带

QAT:卡塔尔

REU:留尼汪岛

ROU:罗马尼亚

RUS:俄罗斯

RWA:卢旺达

SAU:沙特

SDN:苏丹

SEN:塞内加尔

SGP:新加坡

SGS:南乔治亚和南桑威奇群岛

SHN:圣赫勒拿岛、阿森松岛和特里斯坦达库尼亚群岛

SJM:斯瓦尔巴和扬马延群岛

SLB:所罗门群岛

SLE:塞拉利昂

SLV:萨尔瓦多

SMR:圣马力诺

SOM:索马里

SP:萨巴

SPM:圣皮埃尔和密克隆

SQ:圣马丁岛

SRB:塞尔维亚

SS:塞班

SSD:南苏丹

STP:圣多美和普林西比

SUR:苏里南

SVK:斯洛伐克

SVN:斯洛文尼亚

SWE:瑞典

SWZ:斯威士兰

SXM:圣马丁岛(荷属)

SYC:塞舌尔

SYR:叙利亚

TCA:特克斯和凯科斯群岛

TCD:乍得

TGO:多哥

THA:泰国

TJK:塔吉克斯坦

TKL:托克劳群岛

TKM:土库曼斯坦

TLS:东帝汶

TON:汤加

TTO:特立尼达和多巴哥

TUN:突尼斯

TUR:土耳其

TUV:图瓦卢

TWN:中国台湾

TX:塔希提

TZA:坦桑尼亚

UGA:乌干达

UKR:乌克兰

UMI:美国本土外小岛屿

UN:联合国

UNA:联合国

UNO:联合国

URY:乌拉圭

USA:美国

UZB:乌兹别克斯坦

VAT:梵蒂冈

VCT:圣文森特和格林纳丁斯

VEN:委内瑞拉

VGB:维尔京群岛(英属)

VIR:维尔京群岛(美属)

VNM:越南

VUT:瓦努阿图

WAK:威克岛

WLF:瓦利斯和富图纳群岛

WSM:萨摩亚

XXA:无国籍(无国籍人)

XXB:被联合国承认的难民

XXC:不被联合国承认的难民

XXX:国籍不明

YEM:也门

YKS:科索沃

ZAF:南非

ZMB:赞比亚

ZWE:津巴布韦

ZZZ:国籍不详

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Unity2018发布WebGL注意事项总结
下一篇:C#:采用TuesPechkin生成Pdf(c罗)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~