15位转换18位身份证转换规则

合集下载

15位身份证号码转18位算法

15位身份证号码转18位算法

15位⾝份证号码转18位算法⾝份证号码15位升18位⾝份证18位验证18位⾝份证标准在国家质量技术监督局于1999年7⽉1⽇实施的GB11643-1999《公民⾝份号码》中做了明确的规定。

GB11643-1999《公民⾝份号码》为GB11643-1989《社会保障号码》的修订版,其中指出将原标准名称"社会保障号码"更名为"公民⾝份号码",另外GB11643-1999《公民⾝份号码》从实施之⽇起代替GB11643-1989。

GB11643-1999《公民⾝份号码》主要内容如下:⼀、范围该标准规定了公民⾝份号码的编码对象、号码的结构和表现形式,使每个编码对象获得⼀个唯⼀的、不变的法定号码。

⼆、编码对象公民⾝份号码的编码对象是具有中华⼈民共和国国籍的公民。

三、号码的结构和表⽰形式1、号码的结构公民⾝份号码是特征组合码,由⼗七位数字本体码和⼀位校验码组成。

排列顺序从左⾄右依次为:六位数字地址码,⼋位数字出⽣⽇期码,三位数字顺序码和⼀位数字校验码。

2、地址码表⽰编码对象常住户⼝所在县(市、旗、区)的⾏政区划代码,按GB/T2260的规定执⾏。

3、出⽣⽇期码表⽰编码对象出⽣的年、⽉、⽇,按GB/T7408的规定执⾏,年、⽉、⽇代码之间不⽤分隔符。

4、顺序码表⽰在同⼀地址码所标识的区域范围内,对同年、同⽉、同⽇出⽣的⼈编定的顺序号,顺序码的奇数分配给男性,偶数分配给⼥性。

5、校验码(1)⼗七位数字本体码加权求和公式S = Sum(Ai * Wi), i = 0, ... , 16 ,先对前17位数字的权求和Ai:表⽰第i位置上的⾝份证号码数字值Wi:表⽰第i位置上的加权因⼦Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2(2)计算模Y = mod(S, 11)(3)通过模得到对应的校验码Y: 0 1 2 3 4 5 6 7 8 9 10校验码: 1 0 X 9 8 7 6 5 4 3 2四、举例如下:北京市朝阳区: 110105************⼴东省汕头市: 44052418800101001415位升18的⽅法根据〖中华⼈民共和国国家标准 GB 11643-1999〗中有关公民⾝份号码的规定,公民⾝份号码是特征组合码,由⼗七位数字本体码和⼀位数字校验码组成。

身份证号转换

身份证号转换

方法一:15位身份证号:410881********* 输出出生日期1979/06/05 =CONCATENATE("19",MID(E2,7,2),"/",MID(E2,9,2),"/",MID(E2,11,2))公式解释:a.MID(E2,7,2)为在身份证号码中获取表示年份的数字的字符串b. MID(E2,9,2) 为在身份证号码中获取表示月份的数字的字符串c. MID(E2,11,2) 为在身份证号码中获取表示日期的数字的字符串d.CONCATENATE("19",MID(E2,7,2),"/",MID(E2,9,2),"/",MID(E2,11,2))目的就是将多个字符串合并在一起显示。

18位身份证号:410881************ 输出出生日期1979/06/05 =CONCATENATE(MID(E2,7,4),"/",MID(E2,11,2),"/",MID(E2,13,2))方法二:15位身份证号:410881********* 出生日期790605 =IF(LEN(E3)=15,MID(E3,7,6),MID(E3,9,6))18位身份证号:410881************ 出生日期790605 =IF(LEN(E3)=15,MID(E3,7,6),MID(E3,9,6))公式解释:LEN(E2)=15:检查E2单元格中字符串的字符数目,本例的含义是检查身份证号码的长度是否是15位。

MID(E2,7,6):从E2单元格中字符串的第7位开始提取6位数字,本例中表示提取15位身份证号码的第7、8、9、10、11、12位数字。

MID(E2,9,6):从C2单元格中字符串的第9位开始提取6位数字,本例中表示提取18位身份证号码的第9、10、11、12、13、14位数字。

浅谈如何将身份证号码15位转为18位

浅谈如何将身份证号码15位转为18位

浅谈如何将身份证号码15位转为18位笔者日前参与城乡居民保险制度全覆盖审计调查,在审查参保人员是否存在重复参加城乡居保及职工养老险种情况时,发现城乡居保参保人信息中身份证号码均为18位,而职工养老参保人信息中身份证号码长度不唯一,导致无法正确比对数据。

18位身份证号码除了据原有15位基础上,在出生年月部分添加“19”外,号码最后添加一位验证码。

公安局公布的验证码算法内容概述为:将添加“19”后的17位身份证号码对应乘上系数并求和,再将系数和除11后求余数,根据余数对应选择验证码。

笔者据此编写出一套语句,内容如下:一、筛选出15位身份证号码后生成一张新表,将其转为17位1.select 公民身份号码 into 身份证号码 from dbo.个人基本信息 where len(公民身份号码)=152. alter table 身份证号码 add 公民身份号码17位varchar(20)3.update 身份证号码 set 公民身份号码17位=substring(公民身份号码,1,6)+'19'+RIGHT(公民身份号码,7)二、添加系数和、余数及验证码三列Alter table 身份证号码 add系数和 intAlter table 身份证号码 add余数 intAlter table 身份证号码 add验证码 varchar(2)三、求系数和update dbo.身份证号码 set 系数和 =cast(left(公民身份号码17位,1) as int)*7+cast(substring(公民身份号码17位,2,1) as int)*9+cast(substring(公民身份号码17位,3,1) as int)*10+cast(substring(公民身份号码17位,4,1)as int)*5+cast(substring(公民身份号码17位,5,1)as int)*8+cast(substring(公民身份号码17位,6,1)as int)*4+cast(substring(公民身份号码17位,7,1) as int)*2+cast(substring(公民身份号码17位,8,1)as int)*1+cast(substring(公民身份号码17位,9,1)asint)*6+cast(substring(公民身份号码17位,10,1)asint)*3+cast(substring(公民身份号码17位,11,1)asint)*7+cast(substring(公民身份号码17位,12,1) as int)*9+cast(substring(公民身份号码17位,13,1)asint)*10+cast(substring(公民身份号码17位,14,1)as int)*5+cast(substring(公民身份号码17位,15,1)asint)*8+cast(substring(公民身份号码17位,16,1)asint)*4+cast(substring(公民身份号码17位,17,1)as int)*2四、求余数Update 身份证号码 set 余数=系数和%11五、求验证码Update 身份证号码 set 验证码= case when 余数=0 then '1'when 余数=1 then '0'when 余数=2 then 'x'when 余数=3 then '9'when 余数=4 then '8'when 余数=5 then '7'when 余数=6 then '6'when 余数=7 then '5'when 余数=8 then '4'when 余数=9 then '3'when 余数=10 then '2' end六、更新原参保信息表Update a set a. 公民身份号码='b.公民身份号码位'+'b.验证码' from dbo.个人基本信息a,身份证号码 b where a. 公民身份号码=b. 公民身份号码。

身份证升位(15位转18位)与校验

身份证升位(15位转18位)与校验

下载地址: http://x.co/3XmRP (最后五个字符区分大小写) (360安全卫士会拦截,不要理它,忽略警告,继续访问)
生日
区县
根据前17位生成校验码 6
19981002 福建省漳州市平和县
19981002 福建省漳州市平和县
6
备注 B2升位/F2校验为数组公式 <Shift>+<Ctrl>+<Enter> 结束输入 B2升位/F3校验为数组公式 <Shift>+<Ctrl>+<Enter> 结束输入
phszczcc360安全卫士会拦截不要理它忽略警告继续访问代码区县110000北京市110100北京市市辖区110101北京市东城区110102北京市西城区110103北京市崇文区110104北京市宣武区110105北京市朝阳区110106北京市丰台区110107北京市石景山区110108北京市海淀区110109北京市门头沟区110111北京市房山区110112北京市通州区110113北京市顺义区110200北京市县110221北京市昌平县110224北京市大兴县110226北京市平谷县110227北京市怀柔县110228北京市密云县110229北京市延庆县120000天津市120100天津市市辖区120101天津市和平区120102天津市河东区120103天津市河西区120104天津市南开区120105天津市河北区120106天津市红桥区120107天津市塘沽区120108天津市汉沽区120109天津市大港区120110天津市东丽区120111天津市西青区120112天津市津南区120113天津市北辰区120200天津市县120221天津市宁河县120222天津市武清县120223天津市静海县120224天津市宝坻县120225天津市蓟县130000河北省130100河北省石家庄市130101河北省石家庄市市辖区130102河北省石家庄市长安区130103河北省石家庄市桥东区130104河北省石家庄市桥西区130105河北省石家庄市新华区130106河北省石家庄市郊区130107河北省石家庄市井陉矿区130121河北省石家庄市井陉县130123河北省石家庄市正定县130124河北省石家庄市栾城县130125河北省石家庄市行唐县130126河北省石家庄市灵寿县130127河北省石家庄市高邑县130128河北省石家庄市深泽县130129河北省石家庄市赞皇县130130河北省石家庄市无极县130131河北省石家庄市平山县130132河北省石家庄市元氏县130133河北省石家庄市赵县130181河北省石家庄市辛集市130182河北省石家庄市藁城市130183河北省石家庄市晋州市130184河北省石家庄市新乐市130185河北省石家庄市鹿泉市130200河北省唐山市130201河北省唐山市市辖区130202河北省唐山市路南区130203河北省唐山市路北区130204河北省唐山市古冶区130205河北省唐山市开平区130

身份证号码换算年龄、性别、出生日期的公式

身份证号码换算年龄、性别、出生日期的公式

身份证号码换算年龄、性别、出生日期的公式15位和18位的身份证号都合适的了。

设内容如下:........A列......B列......C列......D列....1 身份证号性别出生年月年龄2(输入身份证号)算年龄的:“=IF(OR(LEN(A2)=15,LEN(A2)=18),RIGHT(IF(IF(LEN(A2)=15, MID(A2,9,2),MID(A2,11,2) )*100+IF(LEN(A2)=15,MID(A2,11,2),MI D(A2,13,2))>MONTH(TODAY())*100+DAY(TODAY()),YEAR(TODAY())-IF(LEN(A2)=15,MID(A2,7,2),MID(A2,9,2))-1,YEAR(TODAY())-IF(L EN(A2)=15,MID(A2,7,2),MID(A2,9,2))),2),"证号错误")”算性别的:“=IF(LEN(A2)=15,(IF(OR(ABS(RIGHT(A2))=1,ABS(RIGHT(A2) )=3,ABS(RIGHT(A2))=5,A BS(RIGHT(A2))=7,ABS(RIGHT(A2))=9),"男","女")),(IF(OR(ABS(MID(A2,17,1))=1,ABS(MID(A2,17,1))=3,ABS(M ID(A2,17,1))=5,ABS(MID( A2,17,1))=7,ABS(MID(A2,17,1))=9),"男","女")))”算出生年月的:“=DATE(IF(LEN(E3)=15,MID(E3,7,2),MID(E3,9,2)),IF(LEN(E3) =15,MID(E3,9,2),MID(E3,11,2)),IF(LEN(E3)=15,MID(E3,11,2),MID(E3,13,2)))”只要把输入身份证号的单元格格式设为“文本”就是最关键的,准确。

15位和18位校验规则代码设置

15位和18位校验规则代码设置

15位和18位校验规则代码设置1. 15位和18位校验规则代码的概念和作用唯一识别信息号码是每个公民的标识,它包含了个人的身份信息,并在很多重要场合使用。

在我国,根据公安部颁布的《中华人民共和国居民唯一识别信息法》,唯一识别信息号码一般有15位和18位两种规则代码设置。

这两种唯一识别信息号码的设置规则是为了便于核对、验证和辨认身份信息的真伪。

其中,15位唯一识别信息号码是早期所采用的规则代码,而18位唯一识别信息号码则是根据国家有关法规和政策的调整而产生的。

在本文中,我将会对15位和18位校验规则代码的设置进行全面评估和深入研究,以帮助大家更好地理解这两种规则代码的作用和设计。

2. 15位校验规则代码的设置15位唯一识别信息号码由6位地区码、6位生日和3位顺序码组成。

其中,地区码代表了公民的户口信息所在地,生日是公民出生的年月日,顺序码是在同一地区、同一生日的人中的序号。

通过这种设置,唯一识别信息号码能够唯一地标识一个公民的身份信息,并便于相关部门辨认和核对。

在15位唯一识别信息号码的设置中,采用了一定的校验规则代码,以确保号码的有效性和真实性。

3. 18位校验规则代码的设置18位唯一识别信息号码是根据国家有关法规和政策的调整而产生的,它比15位唯一识别信息号码多出了一位校验码。

通过加入校验码,能够更好地保障唯一识别信息号码的唯一性和真实性,减少唯一识别信息号码被伪造或篡改的可能。

在18位唯一识别信息号码的设置中,校验规则代码更加严格和详细,以适应社会发展和信息安全的需求。

4. 15位和18位校验规则代码的对比在15位和18位唯一识别信息号码的校验规则代码中,都包含了地区码、生日和顺序码,以及校验码(18位唯一识别信息号码)。

但是,由于社会发展和法规的调整,18位唯一识别信息号码的校验规则更加详尽和严格,能够更好地保障身份信息的安全和真实性。

在使用唯一识别信息号码的时候,应当优先选择18位唯一识别信息号码,以确保个人身份信息的真实性和安全性。

身份证号码转换

身份证号码转换
end select
oldtonew = newnumber + code
end function
估计பைடு நூலகம்能看懂的不会太多,那偶就来演算一个吧。
假定旧号码为ABCDEFGHIJKLMNO
第一步,将旧号码变成ABCDEF19GHIJKLMNO
第二步,利用2的17次方到2的1次方对11进行除法运算后取得的余数,与旧号码ABCDEF19GHJIJKLMNO中的各位依次相乘并相加,得到一个num,简单来说,这个
先给大家看一下源码:
function oldtonew (oldnumber)
newnumber = left (oldnumber,6) + "19" + right (oldnumber,9)
num = 0
for i = 18 to 2 step -1
num = num + (2 ^ (i - 1) mod 11) * (mid (newnumber,19 - i,1))
num = 7*A+9*B+10*C+5*D+8*E+4*F+2*1+1*9+6*G+3*H+7*I+9*J+10*K+5*L+8*M+4*N+2*O
第三步,将num除以11得到一个余数S
第四步,如果S=0,则最后一位数字为1;
如果S=1,则最后一位数字为0;
身份证号码转换
偶然间对15位身份证号转18位身份证号的转换原理发生了兴趣,显然,前17位没有什么花样可言,而最后一位的转换,却并非是对原来的15位号码进行简单的加法或乘法运算就可以完成的。上网查了一下,发现说的都很含糊,给出的计算公式也不是那么明朗,总之,一句话,看不懂的说~~

2017公安部18户籍项新规定

2017公安部18户籍项新规定

2017公安部18户籍项新规定户籍制度改革,是指对以《中华人民共和国户口登记条例》为法律依据确立的一整套户口管理制度进行的,广泛深入改良的一项新举措。

是继20世纪80年代实行家庭联产承包责任制后又一次“解放”农民的革命。

户籍制度,是一项基本的国家行政制度。

下面是店铺为大家整理的关于:2017公安部18户籍项新规定。

欢迎阅读!2017公安部18户籍项新规定第一条:居民身份证从15位升至18位后,原号码不变,需要证明是同一人的。

解释:居民身份证15位升18位,第18位是校验码,采用11进制,其中第11个数(即10)用“X”表示,其由固定公式算出,相关单位可登录互联网自行查询核对,无需公安机关出具证.第二条:因非公安机关原因将姓名填写错误,如:银行存单、保险单、学校、单位等档案中姓名同音不同字,需要证明是同一人的。

解释:造成错误的责任主体不是公安派出所,而且派出所也不知情,所以不应出具证明。

公民应当到公证机关,由公证机关来公证证明。

第三条:居民身份证丢失或损坏,需要乘机、取款、报名、考试等,需出具居民身份证明的;解释:居民身份证丢失或损坏,公民可以到市(县、区)局身份证办证中心补办身份证,同时可以办理临时身份证(2个工作日即可领取)。

公安机关在办理补办身份证上没有附加条件,因此,派出所不予出具证明。

第四条:持有居民身份证和户口薄等合法证件,要求派出所出具身份信息证明的。

解释:居民身份证和户口簿是公安机关为公民发放的法定身份证件,派出所无需再出具身份信息证明。

对于当事人公居民身份证丢失或损坏的,要求其提供补办或提供临时身份证明文件。

第五条:偿还能力证明;解释:居民是否具有偿还能力,不在公安派出所掌握情况之内,派出所属不知情,因此不予出具证明。

公民应到公证机关进行公证证明。

第六条:生存(健在)、死亡证明;解释:确定公民生存、死亡是卫生防疫部门的责任,应由卫生防疫部门负责确定。

派出所不予出具证明。

第七条:亲属关系证明;解释:家庭成员在户口登记以外的亲属关系,不在派出所掌握的范围之内,派出所属不知情,因此不予出具证明。

Excel中如何将15位身份证号转换为18位

Excel中如何将15位身份证号转换为18位

Excel中如何将15位身份证号转换为18位假设A列自A2起是身份证号(15位或18位)。

1、身份证号全部改为18位,输入数组公式:=IF(LEN(A2)=15,REPLACE(A2,7,,19)&MID("10X98765432",MOD(SUM(MID(REPLAC E(A2,7,,19),ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11 )+1,1),A2)注意:数组公式输入方法:输入公式后不要按回车,而是按Ctrl+Shift+Enter。

2、身份证号全部改为15位,输入公式:=IF(LEN(A2)=15,A2,LEFT(REPLACE(A2,7,2,),15))3、计算出生日期:=IF(A2<>"",TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),"#-00-00") +0,)4、判断性别:=IF(A2<>"",IF(MOD(RIGHT(LEFT(A2,17)),2),"男","女"),)最终结果如图:自己做的:1、根据身份证号码求出生年月:=IF(LEN(A1)=15,MID(A1,7,2)&"-"&MID(A1,9,2)&"-"&MID(A1,11,2),MID(A1,7,4)&"-"&MID(A1,11,2 )&"-"&MID(A1,13,2))或:=IF(LEN(A1)=15,CONCATENATE("19",MID(A1,7,2),".",MID(A1,9,2)),IF(LEN(A1)=18,CONCATENATE( MID(A1,7,4),".",MID(A1,11,2)),"身份证错"))2、根据身份证号码求性别:=IF(LEN(B2)=15,IF(MOD((MID(B2,15,1)),2)=1,"男","女"),IF(LEN(B2)=18,IF(MOD((MID(B2,17,1)),2)=1,"男","女"),"身份证错"))3、根据身份证号码求年龄:=IF(LEN(B2)=15,year(now())-1900-(MID(B2,7,2)),if(LEN(B2)=18, year(now())-(MID(B2,7,4)),"身份证错"))。

身份证号码批量15位转18位

身份证号码批量15位转18位

#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!

身份证号码批量15位转18位

身份证号码批量15位转18位

#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!

身份证号码15位升18位

身份证号码15位升18位
i----表示号码字符从由至左包括校验码在内的位置序号;
ai----表示第i位置上的号码字符值;
Wi----示第i位置上的加权因子,其数值依据公式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
//加权因子常数
int[] iW=new int[]{7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
//校验码常数
string LastCode="10X98765432";
//新身份证号
15位的身份证编码首先把出生年扩展为4位,简单的就是增加一个19,但是这对于1900年出生的人不使用(这样的寿星不多了)
某男性公民身份号码本体码为34052419800101001,首先按照公式⑴计算:
∑(ai×Wi)(mod 11)……………………………………(1)
公式(1)中:
校验码字符值ai 1 0 X 9 8 7 6 5 4 3 2
根据上表,查出计算结果为2的校验码为所以该人员的公民身份号码应该为 34052419800101001X。
C#代码:
private string per15To18(string perIDSrc)
{
int iS = 0;
(2)计算模
Y = mod(S, 11)
(3)通过模得到对应的校验码
Y: 0 1 2 3 4 5 6 7 8 9 10
校验码: 1 0 X 9 8 7 6 5 4 3 2
四、举例如下:
北京市朝阳区: 11010519491231002X
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档