身份证号码校验器
身份证阅读器

2011-12-24
神思身份证阅读器
型号: 型号:SS628-100U 型号: 型号:SS628-300C
型号:SS628-500 型号
2011-12-24
神思SS628-100U硬件优势
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 外形美观、体积最小(射频设备体积越小,设计制造技术越高)、重量轻; 采用防磨喷涂技术,刷卡摩擦1万次,不脱落; 自带蜂鸣器,读卡后自动蜂鸣提示,无需计算机外加音箱提示; 功耗低,可以通过USB接口取电工作,减少外接电源适配器; 接口丰富:有USB、RS232C(缺省波特率115200bps)两种通讯方式; 任意角度读卡:采用射频磁场导向技术,0~90度都可读卡; 居民身份证阅读距离大于5cm,无盲区,对四种芯片的身份证卡兼容性好; 灵敏度好:从读卡到显示信息的时间小于1秒; 工作状态显示:设备上有相应的电源指示和读卡状态指示; 产品具有掉电、过流、过压、短路等保护措施; 可与专用接口设备实现无缝连接; 通用性强:全面支持WINDOWS98以上版本的操作系统; 开放性好:提供完善的SDK软件包供系统集成商进行二次开发,支持 VC/DELPHI/VB/PB等开发平台。 14. 稳定性能好:应用专用测试设备,在一个半月时间,24小时不间断运行,读 卡100万次,读卡出错率为0
2011-12-24
名称
神思SS628-100U 神思
神思软件读卡界面
2011-12-24
数据查询界面
2011-12-24
新中新DKQ-116D
新中新DKQ-116D身份证阅读器采用国际上先进的 TypeB非接触式IC卡阅读技术,通过内嵌的专用身 份证安全控制模块,以无线传输方式与第二代居民 身份证内的芯片进行安全认证后,将芯片中的个人 信息读出,并通过计算机通讯接口和安装在计算机 中的阅读软件,将个人信息和相片进行显示和存储 等操作。
身份证校验模板操作步骤

身份证校验模板操作步骤电子版的明细清单填写完毕后要运用校验模板来校验。
校验模板能校验姓名填写是否有误、身份证号码是否有误、身份证号码是否重复。
有问题的人员明细或者信息不正确的,应即时核对并修改后重新校验一次,全部明细清单都正确后,再把参保单及明细清单电子版拷贝到U盘。
1、为便于操作,校验模板内部分列已作了隐藏,在使用过程中不要随意对身份证校验模板的格式做任何更改,也不要增加或者删除行、列,否则可能无法正常使用表格的功能。
2、模板样式3、操作步骤(1)、请用“Microsoft Excel”打开身份证校验模板,不要使用其他办公软件,例如“金山WPS”。
(2)、打开模板时,有可能会跳出一个提示框,出现这个框,说明校验模板没有启用宏,只要在表格顶端的工具栏设置那里把宏的安全性等级设置为低就可以正常使用校验模板的功能了。
具体操作步骤如下:第一步:双击打开校验模板如果出现此框,直接点击确定关闭该提示框;第二步:校验模板左上角点击“工具”菜单选项→然后选择“宏”→选择“安全性”→将安全等级设置为“低”,确定即可。
(3)把明细清单内的个人信息复制到校验模板内进行校验,需要复制内容只有姓名、身份证号码,其他不用复制。
1、分别打开明细清单和校验模板,把明细清单上的“姓名“栏下的内容和“身份证号码”栏下的内容分别复制(也可手动输入)到校验模板内的对应的内容栏下,其他内容不用复制,如果第一次复制粘贴不成功,请重试几次,直到成功为止(也可先用鼠标在校验模板内点一下姓名或者身份证一栏,出现黑色的框后,直接返回明细清单界面复制姓名或者身份证,然后在校验模板操作粘贴)。
可一次性全部复制,也可分次来操作;2、复制粘贴完毕后,校验模板会直接显示校验结果,请根据结果的提示,在明细清单原始记录里修改职工的个人信息并保存,在校验模板修改无效,举例如下:①在性别一栏下直接显示“未参加任何项目”的,为校验合格通过,无需修改;②在性别一栏下直接显示“身份证长度错误”的,说明该职工的身份证位数不足18位或者多于18位,或者身份证一栏空白没有录入,请核对职工信息后在明细清单原始记录内更正该职工的身份证号码(正确的身份证号码应为18位,或多或少都是不正确的);③在性别一栏下直接显示“已满55周岁(女)”及“未满18周岁”或者“已满60周岁(男)”的,说明该职工的年龄不符合参保要求,必须删除;④在性别一栏下直接显示“身份证重复”的,说明该职工的身份证号码在此份明细清单里出现了两次以上,请仔细核对,到底是同一个职工重复录入,还是不同职工的姓名使用了同一个身份证号码,核对后在明细清单原始记录内更正相对应的职工信息。
如何利用VisualBasic开发身份证号码批量验证工具软件

如何利用VisualBasic开发身份证号码批量验证工具软件导读:本文如何利用VisualBasic开发身份证号码批量验证工具软件,仅供参考,如果觉得很不错,欢迎点评和分享。
如何利用Visual Basic开发身份证号码批量验证工具软件作者/刘小龙通过对身份证号码实际应用中存在的问题进行详细分析,我们发现每学年的学籍建档、国家助学金申报等方面都离不开身份证号码。
同时,人工核对信息工作量大,也易出错,势必对工作造成一定的影响。
为此,我们运用大学学习的一些VB知识,根据身份证号码编码规则编写了《身份证号码批量验证工具》软件,使身份证号码核对工作变得简单、轻松。
一、软件的设计步骤二、软件详细设计1. 解决方案与软件特色本程序使用VB在Windows XP环境开发,解决了身份证号码验证过程中存在的易出错、工作量大的问题,支持Excel文件批量验证及信息追加,绿色免安装、小巧、实用性强。
2. 具体设计下面就根据软件的操作流程图进行介绍软件的功能和实现原理:(1)操作流程图。
参数设置说明:身份证号码、性别、出生年月所在列均以阿拉伯数字表示,性别、出生年月信息的追加属于选择项。
(2)身份证号码校验值计算函数代码。
Public Function sfzjym(num As String)As StringDim n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,y,s As Integern1=Val(Mid$(num,1,1))*7n2=Val(Mid$(num,2,1))*9n3=Val(Mid$(num,3,1))*10n4=Val(Mid$(num,4,1))*5n5=Val(Mid$(num,5,1))*8n6=Val(Mid$(num,6,1))*4n7=Val(Mid$(num,7,1))*2n8=Val(Mid$(num,8,1))*1n9=Val(Mid$(num,9,1))*6n10=Val(Mid$(num,10,1))*3n11=Val(Mid$(num,11,1))*7n12=Val(Mid$(num,12,1))*9n13=Val(Mid$(num,13,1))*10n14=Val(Mid$(num,14,1))*5n15=Val(Mid$(num,15,1))*8n16=Val(Mid$(num,16,1))*4n17=Val(Mid$(num,17,1))*2y=n1+n2+n3+n4+n5+n6+n7+n8+n9+n10+n11+n12+n13+n 14+n15+n16+n17s=y Mod 11Select CasesCase 0sfzjym=“1”Case 1sfzjym=“0”Case 2sfzjym=“X”Case 3sfzjym=“9”Case 4sfzjym=“8”Case 5sfzjym=“7”Case 6sfzjym=“6”Case 7sfzjym=“5”Case 8sfzjym=“4”Case 9sfzjym=“3”Case 10sfzjym=“2”End SelectEnd Function函数参数为18位身份证号码,返回值为身份证号码的校验值,即身份证号码最后一位,整个计算过程严格按照GB11643-1999 《公民身份号码》中的规定完成。
神思身份证阅读器使用说明

神思身份证阅读器使用说明身份证阅读器热销品牌-神思SS628-100,生产商是山东神思电子技术有限公司。
是由归国留学人员领班的民营科技企业,注册资金为5000万元。
其公司生产的产品包括通信终端、识别终端、支付终端等嵌入式软件。
能从数百家企业投标会中脱颖而出成为生产身份证阅读器的“十大厂家”,实属不易。
神思公司潜心在嵌入式软件领域研发,专注认证识别技术,经过过年的积累,在智能识别终端领域,拥有了包括S-7嵌入式操作系统在内的一系列具有自主知识产权的专有技术。
神思SS628-100身份证阅读器就是其代表作品,可以快速读取、验证、上传或存档二代证IC卡内信息。
产品结构设计简单、坚固,方便易用,性能稳定,适合长期连续工作的使用环境;产品采用RS232或USB接口,安装简单,并可利用USB接口供电,无需外接电源适配器。
深圳研腾科技有限公司销售的神思SS628(100U)身份证阅读器以其美观新颖的外形、稳定的质量赢得全国用户的好评。
神思公司是全标准一次性通过公安部检测的唯一机具生产厂家。
在公安部组织的可追加地址型机具招标中,神思又以优异成绩中标,成为具备读写身份证机具生产资质的三家之一。
公司进行的连续测试中,不间断读卡100万次以上无差错。
迄今为止,神思验证机具开箱合格率达100%,故障率<5‰。
产品特性神思SS628系列二代证验证(阅读)机具拥有自主知识产权,可以快速读取、验证、上传或存档二代证IC卡内信息。
产品结构设计简单、坚固,方便易用,性能稳定,适合长期连续工作的使用环境;产品采用RS232或USB接口,安装简单,并可利用USB接口供电,无需外接电源适配器。
产品采用了基于SAM(安全模块)的加密安全机制,通过神思公司自主知识产权的RF卡读写模块,可对二代证快速解密验证与阅读存档。
软件提供多平台开发函数库,便于用户二次开发和应用。
适用于公安、金融、电信、邮政、教育、民政、旅居、保险、娱乐等多种需要身份验证的行业,可实现客户身份认证、客户信息自动录入,完善客户档案,提高服务质量与工作效率。
JAVA校验身份证号码工具类(支持15位和18位)

JAVA校验⾝份证号码⼯具类(⽀持15位和18位)JAVA 校验⾝份证号码⼯具类(⽀持15位和18位)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;/*** TODO* ⾝份证校验⼯具类*/public class IDCardUtil {/*校验规则:如果为15位,只能是15位数字;前两位满⾜省/直辖市的⾏政区划代码。
如果为18位,允许为18位数字,如出现字母只能在最后⼀位,且仅能为“X”;18位中包含年⽉的字段满⾜⽇期的构成规则;前两位满⾜省/直辖市的⾏政区划代码;最后⼀位校验位满⾜⾝份证的校验规则(⾝份证校验规则见附录)。
附录:⾝份证校验规则公民⾝份证号码校验公式为RESULT = ∑( A[i] * W[i] ) mod 11。
其中,i表⽰号码字符从右⾄左包括校验码在内的位置序号;A[i]表⽰第I位置上的数字的数值;W[i]表⽰第i位置上的加权因⼦,其值如下:i 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2W[i] 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2RESULT 0 1 2 3 4 5 6 7 8 9 10校验码A[1] 1 0 X 9 8 7 6 5 4 3 2*/public static boolean idCardValidate(String idCard) {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 = "";String ai1 = "";String ai2 = "";// 号码的长度 15位或18位if (idCard.length() != 15 && idCard.length() != 18) {return false;}// 数字除最后以为都为数字if (idCard.length() == 18) {ai = idCard.substring(0, 17);} else if (idCard.length() == 15) {ai = idCard.substring(0, 6) + "19" + idCard.substring(6, 15);}if (!isNumeric(ai)) {return false;}// 出⽣年⽉是否有效String strYear = ai.substring(6, 10); // 年份String strMonth = ai.substring(10, 12); // ⽉份String strDay = ai.substring(12, 14); // ⽉份if (!isDataFormat(strYear + "-" + strMonth + "-" + strDay)) {return false;}GregorianCalendar gc = new GregorianCalendar();SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd");try {if ((gc.get(Calendar.YEAR) - Integer.parseInt(strYear)) > 150|| (gc.getTime().getTime() - s.parse(strYear + "-" + strMonth + "-" + strDay).getTime()) < 0) {return false;}} catch (Exception e) {e.printStackTrace();}if (Integer.parseInt(strMonth) > 12 || Integer.parseInt(strMonth) == 0) {return false;}if (Integer.parseInt(strDay) > 31 || Integer.parseInt(strDay) == 0) {return false;}// 地区码是否有效Hashtable h = getAreaCode();if (h.get(ai.substring(0, 2)) == null) {return false;}// 判断最后⼀位的值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];ai1 = ai + strVerifyCode.toUpperCase();ai2 = ai + strVerifyCode.toLowerCase();if (idCard.length() == 18) {if (!ai1.equals(idCard) && !ai2.equals(idCard)) {return false;}}return true;}private static boolean isNumeric(String str) {Pattern pattern = pile("[0-9]*");Matcher isNum = pattern.matcher(str);if (isNum.matches()) {return true;}return false;}private static boolean isDataFormat(String str) {boolean flag = false;String regxStr = "^((\\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])|([135 Pattern pattern1 = pile(regxStr);Matcher isNo = pattern1.matcher(str);if (isNo.matches()) {flag = true;}return flag;}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;}}。
中国居民居住证号码验证工具--开源

中国居民居住证号码验证⼯具--开源IdValidator.php()中华⼈民共和国居民⾝份证、中华⼈民共和国港澳居民居住证以及中华⼈民共和国台湾居民居住证号码验证⼯具(PHP Composer 版)⽀持15 位与 18 位号码。
安装composer require "jxlwqq/id-validator"注:如果 require 失败,解决⽅案见。
使⽤440308************和610104*********⽰例⼤陆居民⾝份证均为随机⽣成的假数据,如撞车,请联系删除。
810000************和830000199201300022⽰例港澳台居民居住证为北京市公安局公布的居住证样式号码。
验证⾝份证号合法性验证⾝份证号是否合法,合法返回true,不合法返回false:use Jxlwqq\IdValidator\IdValidator;$idValidator = new IdValidator();$idValidator->isValid('440308************'); // ⼤陆居民⾝份证 18 位$idValidator->isValid('610104*********'); // ⼤陆居民⾝份证 15 位$idValidator->isValid('810000************'); // 港澳居民居住证 18 位$idValidator->isValid('830000199201300022'); // 台湾居民居住证 18 位获取⾝份证号信息当⾝份证号合法时,返回分析信息(地区、出⽣⽇期、星座、⽣肖、性别、校验位),不合法返回false:use Jxlwqq\IdValidator\IdValidator;$idValidator = new IdValidator();$idValidator->getInfo('440308************'); // 18 位$idValidator->getInfo('610104*********'); // 15 位返回信息格式如下:['addressCode' => '440308', // 地址码'abandoned' => 0, // 地址码是否废弃,1 为废弃的,0 为正在使⽤的'address' => '⼴东省深圳市盐⽥区', // 地址'addressTree' => ['⼴东省', '深圳市', '盐⽥区'] // 省市区三级列表'birthdayCode' => '1999-01-10', // 出⽣⽇期'constellation' => '⽔瓶座', // 星座'chineseZodiac' => '卯兔', // ⽣肖'sex' => 1, // 性别,1 为男性,0 为⼥性'length' => 18, // 号码长度'checkBit' => '2', // 校验码]注:判断地址码是否废弃的依据是,本数据集的采集源来⾃:,每年更新⼀次。
华旭第二代居民身份证阅读(验证)机具

HX-FDX3A型产品说明文档HX-FDX3A型是一款联机型身份证阅读(验证)机具,外观简洁大方、性能安全可靠。
机具内置有公安部定制的专用安全模块,通过非接触读取方式,可将第二代居民身份证内的文字、数字压缩相片等内置芯片信息读出并解码后,通过相应的软件界面显示在连接的计算机终端上,该机具已广泛应用于公安、金融、电信、宾馆、网吧、邮政等部门(行业),是大批量应用阅读机具的首选。
主要技术参数型号说明性能特点●供电方式多样:可采用USB/PS2供电,也可采用外接DC5V/800mA供电,两种方式通过外置的切换开关进行切换●射频技术领先:自主研发射频模块,采用分立器件设计,兼容性好,参数可调范围大●抗干扰:电磁兼容性好,在读卡环境不能保障情况下,仍可保持读卡相对稳定●读卡快捷:1秒钟之内即可实现居民身份证内全部信息的读取●开放性好:提供动态库接口及使用说明,并可根据用户的需要提供基于不同研发平台(VC/VB/PB/DELPHI等)的例程,也可提供基于B/S结构的控件●软件易操作:随机阅读软件设置方便,操作简单,可手动及自动读卡,可实现读卡数据本地存储、查询、检索和打印等常规应用功能HX-FDX5型产品说明文档HX-FDX5型是一款联机型身份证阅读(验证)机具,外观简洁大方、性能安全可靠。
机具内置有公安部定制的专用安全模块,通过非接触读取方式,可将第二代居民身份证内的文字、数字压缩相片等内置芯片信息读出并解码后,通过相应的软件界面显示在连接的计算机终端上,该机具已广泛应用于公安、金融、电信、宾馆、网吧、邮政等部门(行业),是大批量应用阅读机具的首选。
HX-FDX5型是专为银行、通信、医院等柜台式服务的窗口型行业研发和生产的一款分体式二代证阅读(验证)机具。
该机具主机部分放置在柜台内部,连接PC,天线接受器可悬挂在柜台外部,由持卡人自行放置身份证在天线感应区,即可实现身份证信息的读取, HX-FDX5型在主机与天线分离的情况下,性能依然安全可靠,最大感应距离更可达国家规定(50mm)的两倍,是窗口行业的首选阅读机具。
JS-计算身份证校验码(最后一位)

JS-计算⾝份证校验码(最后⼀位)<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Document</title><style>#msg{color: red;}</style></head><body>⾝份证号:<input id="id-card" type="text">(前17位)<br>(校验位)最后⼀位为:<span id="msg"></span><span id="check-digit"></span><br><button onclick="calculate()">计算</button><br><script>"use strict";// 前17位每项的系数let coefficient = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];// 除11取余的结果对应的校验位(最后⼀位)的值let checkDigitMap = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];function calculate(){var idCard = document.querySelector("#id-card");var checkDigit = document.querySelector("#check-digit");var msg = document.querySelector("#msg");var sum = 0;checkDigit.innerHTML = msg.innerHTML = "";if(idCard.value.length < 17){msg.innerHTML = "⾄少输⼊⾝份证前17位";return}for (var i = 0; i < 17; i++) {sum += idCard.value[i] * coefficient[i];}checkDigit.innerHTML = checkDigitMap[sum % 11];}</script></body></html>。