身份证号码15位升18位(C#)
身份证号码15位升18位
身份证18位验证
18位身【shēn】份👘证标准在国家【zài guó jiā】质量技【zhì liàng jì】术监督局于【jú yú】1999年【nián】🌥7月【yuè】🤱1日实施【rì shí shī】👀的【de】🆒GB11643-1999《公民身【gōng mín shēn】🐱份号码【fèn hào mǎ】👧》中做了明确的【de】🦍规定【guī dìng】🥒。 GB11643-1999《公民身【gōng mín shēn】🐱份号码【fèn hào mǎ】👧》为GB11643-1989《社会保🍮障号码【mǎ】👧》的【de】🆒修订版,其中指出将原标准名【biāo zhǔn míng】🔳称【chēng】"社会保🍮障号码【mǎ】👧"更名为【gèng míng wéi】🚤"公民身【gōng mín shēn】🐱份号码【fèn hào mǎ】👧",另外【lìng wài】GB11643-1999《公民身【gōng mín shēn】🐱份号码【fèn hào mǎ】👧》从实施之日起【zhī rì qǐ】📰代替【dài tì】GB11643-1989。GB11643-1999《公民身【gōng mín shēn】🐱份号码【fèn hào mǎ】👧》主要内容如下:
一、范围
该标准🥪规定【guī dìng】🥒了公民【le gōng mín】身【shēn】🐱份号码【fèn hào mǎ】的【de】😎编码对【biān mǎ duì】❇象、号码的【hào mǎ de】😎结构【jié gòu】👹和表现形👶式🍼,使每个编码对【biān mǎ duì】❇象获得一个唯【yī gè wéi】一的【yī de】🆒、不变的【de】🛍法定号码【mǎ】👧。
二、编码对【biān mǎ duì】❇象
公民身【gōng mín shēn】🐱份号码【fèn hào mǎ】的【de】😎编码对【biān mǎ duì】❇象是具有中华人民共和国国籍的【de】🆒公民。
三【sān】🌸、号码的【hào mǎ de】😎结构【jié gòu】👹和表示形式【xíng shì】🍼
1、号码的【hào mǎ de】😎结构【jié gòu】👹
公民身【gōng mín shēn】🐱份号码【fèn hào mǎ】👧是特征组合码【mǎ】👧,由十七位🦗数字【shù zì】本🈷体码【mǎ】👧和一位校验码【xiào yàn mǎ】🎱组成。排列顺🕷序从左至右依【zhì yòu yī】次为✳:六位数【liù wèi shù】🔂字地址码【dì zhǐ mǎ】👧,八位数♿字出生【zì chū shēng】🥊日【rì】期码【mǎ】👧,三【sān】位数🏋字顺序【zì shùn xù】🕊码【mǎ】👧和一位数字【shù zì】🌘校验码【xiào yàn mǎ】🎱。
2、地址码【dì zhǐ mǎ】👧
表示编【biǎo shì biān】码【mǎ】对❇象常住【xiàng cháng zhù】户口所在县(市、旗【qí】、区)的【de】🆒行政区划代码【mǎ】👧,按🌗GB/T2260的【de】🆒规定【guī dìng】🥒执行。
3、出生日【rì】🦎期码【mǎ】👧
表示编【biǎo shì biān】码【mǎ】对❇象出生的【shēng de】👞年【nián】🌥、月【yuè】🤱、日【rì】,按🌗GB/T7408的【de】🆒规定【guī dìng】🥒执行,年【nián】🌥、月【yuè】🤱、日【rì】代码【mǎ】👧之间不【zhī jiān bú】用分隔符。
4、顺序码【shùn xù mǎ】👲
表示在同一地【tóng yī dì】址码【mǎ】所♏标识的【biāo shí de】🆒区域范🤴围内,对同年【nián】🌥、同月【tóng yuè】🤱、同日【rì】出生的【shēng de】👞人编定【rén biān dìng】的【de】🆒顺序号😏,顺序码【shùn xù mǎ】👲的【de】🆒奇数分配给【pèi gěi】💅男性💩,偶数分配给【pèi gěi】💅女性💩。
5、校验码【xiào yàn mǎ】🎱
(1)十七位🦗数字【shù zì】本🈷体码【mǎ】👧加权求和公式【hé gōng shì】🍼
S = Sum(Ai * Wi), i = 0, ... , 16 ,先对前【xiān duì qián】17位数字【shù zì】🌘的【de】权求🦊和
Ai:表示第🤳i位置上🌐的【de】🆒身【shēn】份证号码【mǎ】👧数字【shù zì】值
Wi:表示第🤳i位置上🌐的加权【de jiā quán】🎞因子【yīn zǐ】
Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
(2)计算模
Y = mod(S, 11)
(3)通过模【tōng guò mó】得到对应的校验码【xiào yàn mǎ】🐖
Y: 0 1 2 3 4 5 6 7 8 9 10
校验码【xiào yàn mǎ】🐖: 1 0 X 9 8 7 6 5 4 3 2
四【sì】、举例如【jǔ lì rú】下🍫:
北京市🐈朝阳区💿: 11010519491231002X
广东省汕头市: 440524188001010014
15位升18的方法
根据〖中华人📶民共和❄国国家🥒标准 GB 11643-1999〗中有关🆒公民身份号码【mǎ】的规定,公民身份号码【mǎ】是特征【shì tè zhēng】组合码【mǎ】😃,由十七位数字【zì】🍏本体码【běn tǐ mǎ】和一位【hé yī wèi】数字【zì】🍏校验码【xiào yàn mǎ】组⏬成。排列顺【pái liè shùn】序从左【xù cóng zuǒ】✖至右依【zhì yòu yī】🍻次为【cì wéi】:六位数🈲字【zì】地址码【mǎ】,八位数字【zì】🍏出生日【chū shēng rì】期码【mǎ】,三位数字【zì】🍏顺序码【mǎ】和一位【hé yī wèi】数字【zì】🍏校验码【xiào yàn mǎ】。
地址码【dì zhǐ mǎ】🏂表示编【biǎo shì biān】🔰码【mǎ】🏂对象常住户口【zhù hù kǒu】所在☝县👧(市【shì】⬛、旗、区【qū】)的行政💞区【qū】划代码【mǎ】🏂。生日期【shēng rì qī】码【mǎ】🏂表示编【biǎo shì biān】🔰码【mǎ】🏂对象出生的年【nián】🍝、月、日【rì】,其中年【qí zhōng nián】份用四位数字🐙表示🚋,年【nián】、月、日【rì】之间不用分【bú yòng fèn】隔符。顺序码【mǎ】🐞表示🚋同一地址码【dì zhǐ mǎ】🏂所标识【suǒ biāo shí】的区【qū】☝域范围内【nèi】,对同年【nián】🆒、月、日出生【rì chū shēng】的人员编定的【biān dìng de】顺序号🔲。顺序码【mǎ】🐞的奇数🕗分给男【fèn gěi nán】🔻性【xìng】,偶数分给女性【xìng】。校验码【mǎ】🏂是根据💕前面十💤七位数字🐙码【mǎ】🏂,按照ISO 7064:1983.MOD 11-2校验码【mǎ】🏂计算出【jì suàn chū】来的检【lái de jiǎn】验码【mǎ】🏂。下面举【xià miàn jǔ】例说明➕该计算方法。
15位的身【wèi de shēn】🔮份证编码首先【mǎ shǒu xiān】把出生年扩展为4位🕊,简单的⛎就是增【jiù shì zēng】加一个19,但是这对于【duì yú】🥂1900年出生的人不使用(这样的【zhè yàng de】📷寿星不🐱多了【duō le】)
某男性【mǒu nán xìng】🌜公民身【gōng mín shēn】🍈份号码本体码为【wéi】34052419800101001,首先按照公式⑴计算🛑:
∑(ai×Wi)(mod 11)……………………………………(1)
公式【gōng shì】🛂(1)中【zhōng】:
i----表示号🔡码字符【mǎ zì fú】🔚从由至【cóng yóu zhì】左包括【zuǒ bāo kuò】校验码在内的位置序号;
ai----表示第【biǎo shì dì】🙉i位置上【wèi zhì shàng】的号码字符【mǎ zì fú】🔚值;
Wi----示第i位置上【wèi zhì shàng】的加权因子,其数值💡依据公【yī jù gōng】🚥式🛂Wi=2(n-1)(mod 11)计算得出。
i 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
ai 3 4 0 5 2 4 1 9 8 0 0 1 0 1 0 0 1 a1
Wi 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1
ai×Wi 21 36 0 25 16 16 2 9 48 0 0 9 0 5 0 0 2 a1
根据公式(1)进行计算:
∑(ai×Wi) =(21+36+0+25+16+16+2+9+48++0+0+9+0+5+0+0+2) = 189
189 ÷ 11 = 17 + 2/11
∑(ai×Wi)(mod 11) = 2
然后根【rán hòu gēn】据计算的结果🔸,从下面📓的表中查出相应的校【yīng de xiào】🐼验码,其中X表示计【biǎo shì jì】算结果为【wéi】🧢10:
∑(ai×WI)(mod 11) 0 1 2 3 4 5 6 7 8 9 10
校验码字符值ai 1 0 X 9 8 7 6 5 4 3 2
根据上表【biǎo】😳,查出计🕘算结果【suàn jié guǒ】为2的校验【de xiào yàn】码为所以该人员的公🎧民身份😉号码应【hào mǎ yīng】该为【gāi wéi】 34052419800101001X。
C#代码♊:
private string per15To18(string perIDSrc)
{
int iS = 0;
//加权因【jiā quán yīn】子常数【zǐ cháng shù】🌮
int[] iW=new int[]{7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
//校验码常数🖱
string LastCode="10X98765432";
//新身份证号👻
string perIDNew;
perIDNew=perIDSrc.Substring(0,6);
//填在第🕕6位及第7位上填上‘1’,‘9’两个数字【zì】🥈
perIDNew += "19";
perIDNew += perIDSrc.Substring(6,9);
//进行加权求和🏑
for( int i=0; i<17; i++)
{
iS += int.Parse(perIDNew.Substring(i,1)) * iW[i];
}
//取模运【qǔ mó yùn】算【suàn】,得到模值
int iY = iS%11;
//从【cóng】LastCode中取得以模为❔索引号【suǒ yǐn hào】的值🧗,加到身【jiā dào shēn】份证的🍲最后一位,即为新【jí wéi xīn】身份证号👻。
perIDNew += LastCode.Substring(iY,1);
return perIDNew;
}
关键词:身份证号码
阅读本文后您有什么感想? 已有 人给出评价!
- 0
- 37
- 0
- 0
- 0
- 0