根据运行的环境,操作系统可以分为桌面操作系统,手机操作系统,服务器操作系统,嵌入式操作系统等。 国家质量技术监督局于1999年7月1日实施的GB11643-1999“公民编号”中明确规定了18位ID卡标准. GB11643-1999“公民编号”是GB11643的修订版. -1989年的“社会安全号码”,指出原来的标准名称“社会安全号码”已重命名为“公民身份号码”,而GB11643-1999中的“公民身份号码”将从实施日期起代替GB11643-1989. GB11643-1999“公民号”的主要内容如下: 一个,范围 该标准规定了公民编号的编码对象,编号的结构和表达方式,以便每个编码对象获得唯一且未更改的合法编号. 第二个编码对象 公民编号是为具有中华人民共和国国籍的公民编码的. 三,数字的结构与表示 1. 数字结构 公民身份号码是功能的组合,由一个17位数字的身体代码和一位数字的校验代码组成. 从左到右的排列顺序是: 六位地址码,八位出生日期码,三位顺序码和一位校验码. 2. 地址代码 指明编码对象永久居所所在县(市,旗,区)的行政区划代码,并应按照GB / T2260的规定执行. 3. 出生日期代码 根据GB / T7408的规定,指示编码对象的出生年月日,并且在年月日代码之间没有分隔符. 4. 序列码 表示在同一地址代码标识的区域内,给同一年,同一月,同一天出生的人分配了序列号,男性分配了序列号,偶数分配了偶数. 数字分配给女性. 5. 验证码 (1)17位数字本体代码的加权和公式 S = Sum(Ai * Wi),i = 0,...,16,首先求和前17位数字的权重 Ai: 表示第i个位置的ID编号的数值 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 四,示例如下: 北京市朝阳区: 11010519491231002X 广东省汕头市: 440524188001010014 以下是程序代码: 私有字符串CheckCidInfo(string cid) { string [] aCity = new string [] {null,null,null,null,null,null,null,null,null,null,null,“北京”,“天津”,“河北”,“山西” ,“内蒙古”,零,零,零,零,零,“辽宁”,“吉林”,“黑龙江”,零,零,零,零,零,零,零,“上海”,“江苏”,“浙江”号码验证算法,“安威”,“福建”,“江西”,“山东”,零,零,零,“河南”,“湖北”,“湖南”,“广东”,“广西”,“海南” ,null,null,null,“重庆”,“四川”,“贵州”,“云南”,“西藏”,null,null,null,null,null,null,null,“陕西”,“甘肃”,“青海”,“宁夏”,“新疆”,零,零,零,零,零,“台湾”,零,零,零,零,零,零,零,零号码验证算法,零,零,“香港”, “ Macau”,null,null,null,null,null,null,null,null,“外国”}; double iSum = 0; string info =“”; System.Text.RegularExpressions.Regex rg =新的System.Text.RegularExpressions.Regex(@“ ^ \ d {17}(\ d | x)$”); System.Text.RegularExpressions.Match mc = rg.Match(cid); if(!mc.Success) { 返回“”; } cid = cid.ToLower(); cid = cid.Replace(“ x”,“ a”); if(aCity [int.Parse(cid.Substring(0,2))] == null) { 返回“非法区域”; } 尝试 { DateTime.Parse(cid.Substring(6,4)+“-” + cid.Substring(10,2)+“-” + cid.Substring(12,2)); } 抓住 { 返回“非法生日”; } for(int i = 17; i> = 0; i-) { iSum + =(System.Math.Pow(2,i))* int.Parse(cid [17-i] .ToString(),System.Globalization.NumberStyles.HexNumber); } if(iSum!= 1) return(“非法证书编号”); return(aCity [int.Parse(cid.Substring(0,2))] +“,” + cid.Substring(6,4)+“-” + cid.Substring(10,2)+“- “ + cid.Substring(12,2)+”,“ +(int.Parse(cid.Substring(16,1))%2 ==1?” Male“: ” Female“)); } 通话测试: Response.Write(CheckCidInfo(“ 340524198002300019”)); Response.Write(CheckCidInfo(“ 34052419800101001x”));
|
温馨提示:喜欢本站的话,请收藏一下本站!