未满18岁的身份证号码

2023-06-26

第一篇:未满18岁的身份证号码

18位身份证号码各位的含义

18位身份证号码各位的含义: 1-2位省、自治区、直辖市代码;

3-4位地级市、盟、自治州代码;

5-6位县、县级市、区代码;

7-14位出生年月日,比如19670401代表1967年4月1日;

15-17位为顺序号,是地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。其中第十七位(倒数第二位)奇数分给男性,偶数分给女性。

18位为校验码,0-9和X。作为尾号的校验码,是由把前十七位数字带入统一的公式计算出来的,计算的结果是0-10,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位。X是罗马数字的10,用X来代替10。

地址码

(身份证号码前六位)表示编码对象常住户口所在县(市、镇、区)的行政区划代码。 北京市|110000,天津市|120000,河北省|130000,山西省|140000,内蒙古自治区|150000,辽宁省|210000,吉林省|220000,黑龙江省|230000,上海市|310000,江苏省|320000,浙江省|330000,安徽省|340000,福建省|350000,江西省|360000,山东省|370000,河南省|410000,湖北省|420000,湖南省|430000,广东省|440000,广西壮族自治区|450000,海南省|460000,重庆市|500000,四川省|510000,贵州省|520000,云南省|530000,西藏自治区|540000,陕西省|610000,甘肃省|620000,青海省|630000,宁夏回族自治区|640000,新疆维吾尔自治区|650000,台湾省(886)|710000,香港特别行政区(852)|810000,澳门特别行政区(853)|820000

大陆居民身份证号码中的地址码的数字编码规则为:

第一位数字表示地区,1是华北,2 是东北,3是华东,4是中南,5是西南,6是西北。

第二位数字表示户籍地所在的直辖市、省、自治区在该地区中的排位,比如在华北地区,1代表北京市,2代表天津市,3代表河北省,4代表山西省,5代表内蒙古自治区。

第三、四位数字则表示户籍所在地的区、县、县级市、旗。

第五、六位数字在户籍所在地是省、自治区的身份证号码中表示所在地的地区或地区级市(省辖市)、盟,在户籍地是直辖市的身份证号码中表示所在地的归属,01是城市,02是农村。

校验码的计算方法

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位数字上出现的是 X 。如果余数是10,身份证的最后一位号码就是罗马数字 2 。

例如:某男性的身份证号码为【53010219200508011x】, 我们看看这个身份证是不是合法的身份证。

首先我们得出前17位的乘积和: 【(5*7)+(3*9)+(0*10)+(1*5)+(0*8)+(2*4)+(1*2)+(9*1)+(2*6)+(0*3)+(0*7)+(5*9)+(0*10)+(8*5)+(0*8)+(1*4)+(1*2)】是189,然后用189除以11得出的结果是189/11=17----2,也就是说其余数是2。最后通过对应规则就可以知道余数2对应的检验码是X。所以,可以判定这是一个正确的身份证号码。

第二篇:18位公民身份证号码的编排规则

18位公民身份证号码的编排规则 18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999《公民身份号码》中做了明确规定。

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

公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码。其含义如下:

1. 地址码:表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。

2. 出生日期码:表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日分别用4位、2位、2位数字表示,之间不用分隔符。

3. 顺序码:表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。

校验的计算方式:

1. 对前17位数字本体码加权求和

公式为:S = Sum(Ai * Wi), i = 0, ... , 16

其中Ai表示第i位置上的身份证号码数字值,Wi表示第i位置

上的加权因子,其各位对应的值依次为:

2. 以11对计算结果取模

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公民身份证号码按照GB11643—1999《公民身份证号码》国家标准编制,由18位数字组成:前6位为行政区划分代码,第7位至14位为出生日期码,第15位至17位为顺序码,第18位为校验码。

15~17位为顺序号,是县、区级政府所辖派出所的分配码,每个派出所分配码为10个连续号码,例如“000-009”或“060-069”,其中单数为男性分配码,双数为女性分配码,如遇同年同月同日有两人以上时顺延第

二、第

三、第

四、第五个分配码。如:007的就是个男生 而且和他同年月日生的男生至少有两个 他们的后四位是001* 和 003*

第18位号码是校验码,目的在于检测身份证号码的正确性,是由计算机随机产生的,所以不再是男性为单数,女性为双数。

1、2位数字表示:所在省份的代码; 第

3、4位数字表示:所在城市的代码; 第

5、6位数字表示:所在区县的代码。

第三篇:身份证号码验证

package com.lishi.idcatch;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.GregorianCalendar;

import java.util.Hashtable;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

/*********************************** 身

****************************************/

/**份证验证开始

* 身份证号码验证

*

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

* 2)现在校验最后一位 x必须是大写,其他没有区别!(X表示11)

*/

public class IdHolder {

/**

* 功能:身份证的有效验证

* @param IDStr 身份证号

* @return 有效:返回"" 无效:返回String信息* @throws ParseException*/public static String IDCardValidate(String IDStr) throws ParseException {String errorInfo = "";// 记录错误信息String[] ValCodeArr = { "1", "0", "X", "9", "8", "7", "6", "5", "4","3", "2" };String[] Wi = { "7", "9", "10", "5", "8", "4", "2", "1", "6", "3", "7","9", "10", "5", "8", "4", "2" };

为数字。";

String Ai = "";// ================ 号码的长度 15位或18位 ================if (IDStr.length() != 15 && IDStr.length() != 18) {errorInfo = "身份证号码长度应该为15位或18位。";return errorInfo;}// =======================(end)========================// ================ 数字 除最后以为都为数字 ================if (IDStr.length() == 18) {Ai = IDStr.substring(0, 17);} else if (IDStr.length() == 15) {Ai = IDStr.substring(0, 6) + "19" + IDStr.substring(6, 15);}if (isNumeric(Ai) == false) {errorInfo = "身份证15位号码都应为数字 ; 18位号码除最后一位外,都应return errorInfo;}// =======================(end)========================// ================ 出生年月是否有效 ================String strYear = Ai.substring(6, 10);// 年份String strMonth = Ai.substring(10, 12);// 月份String strDay = Ai.substring(12, 14);// 月份if (isDate(strYear + "-" + strMonth + "-" + strDay) == false) {errorInfo = "身份证生日无效。";return errorInfo;}GregorianCalendar gc = new GregorianCalendar();SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd");if ((gc.get(Calendar.YEAR)s.parse(strYear + "-" + strMonth + "-" + strDay).getTime()) < 0) {errorInfo = "身份证生日不在有效范围。";

return errorInfo;}if (Integer.parseInt(strMonth) > 12 || Integer.parseInt(strMonth) == 0) {errorInfo = "身份证月份无效";return errorInfo;}if (Integer.parseInt(strDay) > 31 || Integer.parseInt(strDay) == 0) {errorInfo = "身份证日期无效";return errorInfo;}// =====================(end)=====================// ================ 地区码时候有效 ================Hashtable h = GetAreaCode();if (h.get(Ai.substring(0, 2)) == null) {errorInfo = "身份证地区编码错误。";return errorInfo;}// // ================ 判断最后一位的值 ================int TotalmulAiWi = 0;for (int i = 0; i < 17; i++) {TotalmulAiWi = TotalmulAiWi+ Integer.parseInt(String.valueOf(Ai.charAt(i)))* Integer.parseInt(Wi[i]);}int modValue = TotalmulAiWi % 11;String strVerifyCode = ValCodeArr[modValue];Ai = Ai + strVerifyCode;//x必须为大写if (IDStr.length() == 18) {if (Ai.equals(IDStr) == false) {errorInfo = "身份证无效,不是合法的身份证号码";return errorInfo;}} else {return "";}// =====================(end)=====================return "";}/**

* 功能:设置地区编码* @return Hashtable 对象*/private static Hashtable GetAreaCode() {Hashtable hashtable = new Hashtable();hashtable.put("11", "北京");hashtable.put("12", "天津");hashtable.put("13", "河北");hashtable.put("14", "山西");hashtable.put("15", "内蒙古");hashtable.put("21", "辽宁");hashtable.put("22", "吉林");hashtable.put("23", "黑龙江");hashtable.put("31", "上海");hashtable.put("32", "江苏");hashtable.put("33", "浙江");hashtable.put("34", "安徽");hashtable.put("35", "福建");hashtable.put("36", "江西");hashtable.put("37", "山东");hashtable.put("41", "河南");hashtable.put("42", "湖北");hashtable.put("43", "湖南");hashtable.put("44", "广东");hashtable.put("45", "广西");hashtable.put("46", "海南");hashtable.put("50", "重庆");hashtable.put("51", "四川");hashtable.put("52", "贵州");hashtable.put("53", "云南");hashtable.put("54", "西藏");hashtable.put("61", "陕西");hashtable.put("62", "甘肃");hashtable.put("63", "青海");hashtable.put("64", "宁夏");hashtable.put("65", "新疆");hashtable.put("71", "台湾");hashtable.put("81", "香港");hashtable.put("82", "澳门");hashtable.put("91", "国外");return hashtable;}/**

* 功能:判断字符串是否为数字

* @param str

* @return

*/

private static boolean isNumeric(String str) {

Pattern pattern = Pattern.compile("[0-9]*");

Matcher isNum = pattern.matcher(str);

if (isNum.matches()) {

return true;

} else {

return false;

}

}

/**

* 功能:判断字符串是否为日期格式

* @param str

* @return

*/

public static boolean isDate(String strDate) {

Pattern pattern = Pattern

.compile("^((d{2}(([02468][048])|([13579][26]))[-/s]?((((0?[13578])|(1[02]))[-/s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[-/s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[-/s]?((0?[1-9])|([1-2][0-9])))))|(d{2}(([02468][1235679])|([13579][01345789]))[-/s]?((((0?[13578])|(1[02]))[-/s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|

(11))[-/s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[-/s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(s(((0?[0-9])|([1-2][0-3])):([0-5]?[0-9])((s)|(:([0-5]?[0-9])))))?$");

Matcher m = pattern.matcher(strDate);

if (m.matches()) {

return true;

} else {

return false;

}

}

/**

* 顺序码味12-15或者14-17 为 1表示男,0表示女

* @param id 身份证号

* @return

*/

public static int getSex(String id) {

String num = "";

if (id.length() == 15) {

num = id.substring(12, 15);

}

if (id.length() == 18) {

num = id.substring(14, 17);

}

int p = Integer.parseInt(num);

return p % 2;

}

/**

* @param args

* @throws ParseException

*/

public static void main(String[] args) throws ParseException {// String IDCardNum="210102820826411";// String IDCardNum="210102198208264114";String IDCardNum = "430921198907201343";//IdHolder cc = new IdHolder();

System.out.println(IdHolder.IDCardValidate(IDCardNum));// System.out.println(cc.isDate("1996-02-29"));}

/*********************************** 身份证****************************************/

} 验证结束

第四篇:身份证号码变更证明

公民身份号码更正证明存根

№ 重号当事人姓名:

重号当事人住址: 更正前公民身份号码 : 更正后公民身份号码:

更正原因:重号/错号

申请人住址: 申请理由:

申请人签名:

经 办 人:

联系电话:更正日期:年

日 公民身份号码更正证明 № 本辖区公民 :

(曾用名

)

住址:

原使用的公民身份号码为:

系(重/错)号。根据《中华人民共和国居民身份证法》的有关规定及公民身份号码的编制原则,为确保公民身份号码的准确性和唯一性, 自

日起将原号码更正为:

特此证明

所属县区派出所 (户口专用章)

注:请为申请人办理公民身份号码变更的相关事宜。此件为原件,如需要请留存复印件。 发函单位联系电话:

公安部治安管理局制

第五篇:身份证号码含义[大全]

新的身份证为18位,老的身份证是15位。 关于身份证第18是怎么计算的,原理如下:根据〖中华人民共和国国家标准 GB 11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。

排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。

地址码(身份证前六位)表示编码对象常住户口所在县(市、旗、区)的行政区划代码。(所有区域的编码可以到这个网站http:///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。所以,这是一个合格的身份证号码。 例如:某男性的身份证号码是34052419800101001X。我们要看看这个身份证是不是合法的身份证。 首先:我们得出,前17位的乘积和是189 然后:用189除以11得出的结果是17 + 2/11,也就是说余数是

2。 最后:通过对应规则就可以知道余数2对应的数字是x。所以,这是一个合格的身份证号码。

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

上一篇:新概念英语第二册20课下一篇:初中毕业典礼演讲稿