日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#验证 中国 身份证 代码

發布時間:2024/10/8 C# 101 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#验证 中国 身份证 代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/*
???????? * 理論部分:
???????? * 15位身份證號碼=6位地區代碼+6位生日+3位編號
???????? * 18位身份證號碼=6位地區代碼+8位生日+3位編號+1位檢驗碼
???????? *
???????? * 各省市地區國家代碼前兩位代碼是:????
???????? * 北京 11 吉林 22 福建 35 廣東 44 云南 53 天津 12 黑龍江 23 江西 36 廣西 45 西藏 54 河北 13 上海 31 山東 37 海南 46 陜西 61 山西 14 江蘇 32 河南 41 重慶 50
??????? 甘肅 62 內蒙古 15 浙江 33 湖北 42 四川 51 青海 63 遼寧 21 安徽 34 湖南 43 貴州 52 寧夏 64 新 疆 65 臺灣 71 香港 81 澳門 82 國外 91?? *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位置上的加權因子,其各位對應的值依次為:
??????? *7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
??????? *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
??????? */
??????? 代碼 ?1??///?<summary>
?2?????????///?身份證驗證
?3?????????///?</summary>
?4?????????///?<param?name="Id">身份證號</param>
?5?????????///?<returns></returns>
?6?????????public?bool?CheckIDCard(string?Id)
?7?????????{
?8?????????????if?(Id.Length?==?18)
?9?????????????{
10?????????????????bool?check?=?CheckIDCard18(Id);
11?????????????????return?check;
12?????????????}
13?????????????else?if?(Id.Length?==?15)
14?????????????{
15?????????????????bool?check?=?CheckIDCard15(Id);
16?????????????????return?check;
17?????????????}
18?????????????else
19?????????????{
20?????????????????return?false;
21?????????????}
22?????????}
23?????????///?<summary>
24?????????///?18位身份證驗證
25?????????///?</summary>
26?????????///?<param?name="Id">身份證號</param>
27?????????///?<returns></returns>
28?????????private?bool?CheckIDCard18(string?Id)
29?????????{
30?????????????long?n?=?0;
31?????????????if?(long.TryParse(Id.Remove(17),?out?n)?==?false?||?n?<?Math.Pow(10,?16)?||?long.TryParse(Id.Replace('x',?'0').Replace('X',?'0'),?out?n)?==?false)
32?????????????{
33?????????????????return?false;//數字驗證
34?????????????}
35?????????????string?address?=?"11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91";
36?????????????if?(address.IndexOf(Id.Remove(2))?==?-1)
37?????????????{
38?????????????????return?false;//省份驗證
39?????????????}
40?????????????string?birth?=?Id.Substring(6,?8).Insert(6,?"-").Insert(4,?"-");
41?????????????DateTime?time?=?new?DateTime();
42?????????????if?(DateTime.TryParse(birth,?out?time)?==?false)
43?????????????{
44?????????????????return?false;//生日驗證
45?????????????}
46?????????????string[]?arrVarifyCode?=?("1,0,x,9,8,7,6,5,4,3,2").Split(',');
47?????????????string[]?Wi?=?("7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2").Split(',');
48?????????????char[]?Ai?=?Id.Remove(17).ToCharArray();
49?????????????int?sum?=?0;
50?????????????for?(int?i?=?0;?i?<?17;?i++)
51?????????????{
52?????????????????sum?+=?int.Parse(Wi[i])?*?int.Parse(Ai[i].ToString());
53?????????????}
54?????????????int?y?=?-1;
55?????????????Math.DivRem(sum,?11,?out?y);
56?????????????if?(arrVarifyCode[y]?!=?Id.Substring(17,?1).ToLower())
57?????????????{
58?????????????????return?false;//校驗碼驗證
59?????????????}
60?????????????return?true;//符合GB11643-1999標準
61?????????}
62?????????///?<summary>
63?????????///?15位身份證驗證
64?????????///?</summary>
65?????????///?<param?name="Id">身份證號</param>
66?????????///?<returns></returns>
67?????????private?bool?CheckIDCard15(string?Id)
68?????????{
69?????????????long?n?=?0;
70?????????????if?(long.TryParse(Id,?out?n)?==?false?||?n?<?Math.Pow(10,?14))
71?????????????{
72?????????????????return?false;//數字驗證
73?????????????}
74?????????????string?address?=?"11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91";
75?????????????if?(address.IndexOf(Id.Remove(2))?==?-1)
76?????????????{
77?????????????????return?false;//省份驗證
78?????????????}
79?????????????string?birth?=?Id.Substring(6,?6).Insert(4,?"-").Insert(2,?"-");
80?????????????DateTime?time?=?new?DateTime();
81?????????????if?(DateTime.TryParse(birth,?out?time)?==?false)
82?????????????{
83?????????????????return?false;//生日驗證
84?????????????}
85?????????????return?true;//符合15位身份證標準
86?????????}

轉載于:https://www.cnblogs.com/eduthanks/archive/2010/01/05/1639898.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的C#验证 中国 身份证 代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩在线不卡 | 日韩黄色在线播放 | 亚洲黄视频 | 国产精品久久久久久久久久妞妞 | 久草不卡 | 中文字幕乱码无码人妻系列蜜桃 | 91免费国产| 成人激情av| 下面一进一出好爽视频 | 久久99久久99精品 | 午夜电影在线播放 | 林天顾悦瑶笔趣阁 | 深夜福利影院 | 拔擦8x成人一区二区三区 | 成人在线激情网 | xxx一区| 天天精品 | 亚洲国产成人91porn | 国产成人综合av | 欧美激情在线 | 金鱼妻日剧免费观看完整版全集 | 小早川怜子久久精品中文字幕 | 麻豆传媒网站 | 中文有码在线 | 狠狠影院 | 天天干人人| 靠逼视频免费网站 | 91av视频网 | 一级片免费视频 | 久久无码视频一区 | 一区二区啪啪啪 | 自拍偷拍99 | 免费看污片的网站 | 国产永久视频 | 日本不卡不卡 | 日本久久网 | 免费观看亚洲视频 | 国产三级小视频 | 国产在线观看免费 | 亚洲精品久久久中文字幕痴女 | 6080av| 国产一区二区三区色淫影院 | 天天艹日日艹 | 久久精品视频在线观看 | 小泽玛利亚一区二区三区在线观看 | 另类ts人妖一区二区三区 | 免费黄色网址在线观看 | 成人激情小视频 | 欧美3p在线观看 | 97超碰站 | 中文字幕精品一区二区精品 | 波多野结衣高清视频 | 天天色视频 | av免| 国产男女猛烈无遮挡免费观看网站 | 高h调教冰块play男男双性文 | 少妇搡bbbb搡bbbb | 成人免费观看视频大全 | 成人黄色在线网站 | 性做久久久久久免费观看欧美 | 日韩少妇精品 | 午夜整容室 | 中国三级黄色 | 99在线成人精品视频 | 亚洲欧美日韩高清 | 亚洲一区二区三区久久 | jizzjizz在线观看 | 中国免费观看的视频 | 五月丁香| 高清中文字幕mv的电影 | 天天上天天干 | 欧美激情电影一区二区 | 好男人网站 | 咪咪色在线视频 | 青青草成人免费在线视频 | jizz国产在线观看 | 亚洲女优一区 | 精品久久久久久久久久久国产字幕 | 欧美a免费| 成年人网站黄色 | 欧美高清精品 | 97精品人妻一区二区三区在线 | 99精品热视频 | 91字幕网| 久久综合久久久 | 国产乱淫av免费 | 精品久久国产字幕高潮 | 欧美日韩精品一区二区在线播放 | 午夜激情导航 | 在线免费观看视频黄 | 亚洲欧美精品在线 | 日韩激情电影在线 | xiuxiuavnet| 欧美激情一区在线 | 91原创视频 | 欧美18免费视频 | 欧美精品极品 | 国产精品jizz | 国产视频第三页 |