为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

身份证验证算法

2017-12-27 5页 doc 16KB 21阅读

用户头像

is_314871

暂无简介

举报
身份证验证算法身份证验证算法 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace IDCard { public partial class FrmIDC : Form { public...
身份证验证算法
身份证验证算法 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace IDCard { public partial class FrmIDC : Form { public FrmIDC() { InitializeComponent(); } private void btnCheck_Click(object sender, EventArgs e) { IdCheckResult icr = CheckIDCard(txtIDC.Text.Trim()); switch (icr) { case IdCheckResult.ChrError: lblTitle.Text = "你输入的身份证号码含有非法字符~"; txtIDC.Focus(); break; case IdCheckResult.NotInCh: lblTitle.Text = "你输入的身份证不再中国境内~"; txtIDC.Focus(); break; case IdCheckResult.BirthError: lblTitle.Text = "你输入的身份证生日部分非法~"; txtIDC.Focus(); break; case IdCheckResult.CheckFalse: lblTitle.Text = "你输入的身份证号码不合法~"; txtIDC.Focus(); break; case IdCheckResult.Success: break; default: break; } } public enum IdCheckResult { ChrError, NotInCh, BirthError, CheckFalse, Success } private IdCheckResult CheckIDCard(string id) { long n = 0; 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) { return IdCheckResult.ChrError; } string address = "11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x3 4x43x52x64x65x71x81x82x91"; if (address.IndexOf(id.Remove(2)) == -1) { return IdCheckResult.NotInCh; } string birth = id.Substring(6, 8).Insert(6, "-").Insert(4, "-"); DateTime time = new DateTime(); if (DateTime.TryParse(birth, out time) == false) { return IdCheckResult.BirthError; } string[] arrVarifyCode = ("1,0,x,9,8,7,6,5,4,3,2").Split(','); string[] Wi = ("7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2").Split(','); char[] Ai = id.Remove(17).ToCharArray(); int sum = 0; for (int i = 0; i < 17; i++) { sum += int.Parse(Wi[i]) * int.Parse(Ai[i].ToString()); } int y = -1; Math.DivRem(sum, 11, out y); if (arrVarifyCode[y] != id.Substring(17, 1)) { return IdCheckResult.CheckFalse; } if (int.Parse(id.Substring(16, 1)) % 2 == 0) { txtSex.Text = "女"; } else { txtSex.Text = "男 "; } txtBirth.Text = birth.ToString(); txtAddress.Text = address.Substring(address.IndexOf(id.Remove(2)), 2).ToString(); return IdCheckResult.Success; } } }
/
本文档为【身份证验证算法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索