收藏 分销(赏)

IDCardWebHelp.doc

上传人:s4****5z 文档编号:9009756 上传时间:2025-03-11 格式:DOC 页数:24 大小:1.01MB
下载 相关 举报
IDCardWebHelp.doc_第1页
第1页 / 共24页
IDCardWebHelp.doc_第2页
第2页 / 共24页
点击查看更多>>
资源描述
居民二代身份证通用阅读控件 IDCardWeb(网页版) 版本:1.3.0.3 使用手册 phototake@ 2010年12月 一、IDCardWeb简介 IDCardWeb是一款通用的配合二代身份证阅读器实现网页读取二代身份证信息的工具。作为web应用开发者,我们经常会遇到(如招生考试中等)在浏览器中采集身份证信息的需求。IDCardWeb针对这一需求,通过在网页中嵌入控件,实现准确、快速、安全、防篡改地采集身份证信息。居民二代身份证的姓名中可能含有的生僻字使用的是专用编码和字库,在使用通用字库的计算机中是不能显示的,IDCardWeb很好地解决了此问题。IDCardWeb能够在无界面、图标界面、基本界面和标准界面中转换,适应于不同的应用场合。IDCardWeb提供丰富的数据接口,让应用开发者方便地进行二次开发。 IDCardWeb采用信息产业部数据通信科学技术研究数据所制定的《居民身份证验证安全控制模块接口》进行开发,因此 IDCardWeb可以适用于不同厂家利用这一标准生产的二代身份证阅读器,无需再使用阅读器厂家提供的功能单一的控件。 二、系统要求 服务端:可以是任何操作系统,任何web服务器。 客户端:windows操作系统(除win95/98外),Internet Explorer5.5及以上版本。 三、IDCardWeb的安装 1. 服务端 在页面中嵌入IDCardWeb控件。示例网页 IDCardWeb.htm <html> ... <OBJECT CLASSID="clsid:63CAB467-5BB8-4CB2-8C87-C8F3B66040C0" codebase="IDCardWeb.cab" ID="idc"></OBJECT> ... </html> 如果你访问该网页的地址是: 则你必须将 IDCardWeb.cab放在: 可以访问到的地方。总之,IDCardWeb.cab的位置,需要根据当前网页路径与codebase属性来确定。 2. 浏览器端 当你访问使用IDCardWeb控件的网页时,浏览器将从服务器上下载控件,自动安装到ie中。当然,如果你的IE安全设置过高,也可能不能自动安装,这时,你需要改变IE的安全设置,或进行离线安装。建议下载离线安装包IDCardWeb.exe进行离线安装。注:本控件暂时只提供离线安装包。 IE安全设置方法如下:IE 浏览器->工具-> internet 选项->安全->自定义级别,设置下载未签名的 ActiveX等的相关项目为启用状态。 ² 进入IE菜单栏 [工具] -> [Internet选项] ² 进入[安全]-[可信任站点] ² 点击 [站点] 把页面所在的网站加入可信任站点 ² 点击 [自定义级别] 进入安全设置-受信任的站点区域,设置ActiveX控件和插件的相关选项为启用 3、IDCardWeb的离线安装 ² 下载IDCardWeb的安装包运行 ² 如果有浏览器或应用程序正在使用原来安装的IDCardWeb,请关闭所有相关的应用程序后再按“重试” ² 完成安装 四、IDCardWeb的界面和功能键使用 IDCardWeb有四种界面:无界面、图标界面、基本界面(只显示姓名和身份证号)、标准界面。控件默认使用基本界面,通过Size属性来设置转换界面。 图标界面 基本界面 标准界面 l A.启动/停止键 鼠标单击此键,可以启动/停止自动阅读身份证。当此图标为 时,自动阅读处于停止状态,单击 将启动自动阅读。当此图标为 时,处于自动阅读状态,连接好设备,将身份证交替放到阅读器上,系统将自动连续阅读,单击 将关闭自动阅读。 l B.清除屏幕信息键 鼠标单击此键图标 ,系统将清除屏幕上已阅读身份证信息,同时引发onClear() 事件。 l C.运行状态图标 此图标指示当前自动阅读状态。在停止状态,不显示图标。启动阅读后,此图标连续闪动。当闪动图标为 时表示未找到阅读设备,系统等待并继续查找设备,同时不断引发 onStatus(state,msg) 和onMessage(msg)事件。当闪动图标为 时表示系统已连接设备,正在自动阅读中,同时不断引发 onStatus(state,msg) 和 onMessage(msg) 事件,正确读取出身份证信息时引发 OnRead() 事件。 五、IDCardWeb的属性 l License 网站授权,字符型,必选。 此属性必须在Verify和RarelyWord设置之前设置。此属性将对网站URL进行授权。未正确授权时,IDCardWeb读取信息到屏幕,不引发OnRead事件,不输出数据。示例: idc.License=”71TMkYXFUhaKnAyoIw9/A4lsosfdmEh9myqHW”; l Verify MD5数字签名编码的字符串表达式,字符型,必选。 专用加密编码器加密,与License相关。此属性必须在RarelyWord设置之前和License正确设置之后设置。上传的身份证数据项自定义组合,如:姓名+身份证号+照片+自定义字符+Session,与服务端配合进行MD5数字签名校验,可以有效防止被篡改的身份证信息上传。表达式通过专用加密编码器加密。示例: idc.Verify="q7w3EB3Uu5lXosGtC4VMhMEz1MsjZ8m0E/T5Rs"; l RarelyWord 生僻字表,字符型,可选。 专用加密编码器双重加密,与License和Verify相关。此属性必须在License和RarelyWord正确设置之后设置。通过此属性,解决身份证姓名中可能包含的,计算机通用字库中没有的生僻字问题。把收集的生僻字字节ASCII码(如837B)通过专用加密编码器加密编码的字符串,赋值到此属性。建议加密编码的生僻字表字符串保存在可在线更新的数据库中,实时读取到页面。示例: idc.RarelyWord=”468IMMMcreAvFV1XfFEVSqp9zA2Rs0bdGm”; l Session 用户会话变量,字符型,可选。 通过此属性,可以动态设置身份证信息MD5数字签名编码的字符串,增加上传数据防篡改的强度。示例: idc.Session=”abcdefg”; l AutoStopTime 停止自动读卡间隔时间(秒),整型,可选。 进入自动读卡,IDCardWeb 自动查找阅读设备上是否有身份证,如果在AutoStopTime 设定的时间内没有找到身份证,IDCardWeb 将停止继续扫描,以保护阅读设备。示例: idc.AutoStopTime=60; l Size 界面类型,整形,可选。 示例: idc.Size = 2; //-基本界面 Size 界面类型 0 无界面 1 图标界面 2 基本界面(只显示姓名和身份证号) 3 标准界面 六、IDCardWeb的方法 l ReadStart() 开始自动连续读卡。 示例:idc.ReadStart(); l ReadClose() 停止自动连续读卡。 示例:idc.ReadClose(); l SaveIDPicture(sFile) 保存照片为本地指定的文件,支持.jpg、.bmp、.gif、.png格式。 示例:idc.SaveIDPicture("d:\idpicture.jpg"); l MD5(str) 计算字符串的MD5编码,返回字符型。 示例:strMd5=idc.MD5("abcdefg"); l Send(url, fieldList, sendType, httpHead, timeOut) 发送指定身份证信息到指定URL,返回服务端返回的文本。 url -------------- 数据发送的目录URL地址,字符型,必选 fieldList -------- 要发送的身份信息字段名表,用“,”分隔,字符型。字段名首字母为小写时,数据将先进行base64编码。 数据字段的关键字 注释 IDName 姓名 IDCardNo 身份证号 IDPictureBase64 照片 IDNameCode 姓名编码 IDSex 性别 IDSexCode 性别编码 IDNation 民族 IDNationCode 民族编码 IDBorn 出生日期 IDAddress 住址 IDGrantDept 签发机关 IDBeginTime 开始期限 IDEndTime 结束期限 IDNewAddress 最新住址 IDRarelyWord 姓名生僻字 SAMID 阅读器安全模块ID sendType ---- 发送类型,整形,可选。 0(默认) 通过application/x-www-form-urlencoded方式发送FORM数据。 在服务端:通过form读取数据,如在ASP中获取指定的身份证信息的方法: IDName=Request.form("IDName") 1 通过application/octet-stream方式发送二进制照片数据,指定的身份证字段信息通过HTTP头传送。 在服务端,直接接收二进制照片数据,如在ASP中获取二进制照片数据的方法: IDPicture=Request.BinaryRead(Request.TotalBytes) 在服务端,从HTTP头中读取字段数据,如在ASP中获取指定的身份证信息的方法: IDName=Request.ServerVariables("HTTP_IDName")。 2 通过application/octet-stream方式发送时不传送二进制照片数据,指定的身份证字段信息通过HTTP头传送。 在服务端,从HTTP头中读取字段数据,如在ASP中获取指定的身份证信息的方法: IDName=Request.ServerVariables("HTTP_IDName")。 httpHead --- 附加的HTTP头,字符型,可选。 timeOut ---- 超时时间(秒,默认5秒),整形,可选。 示例: Send("upload.asp", "IDName,IDCardNo,IDRarelyWord"); 七、IDCardWeb的事件 l OnRead() 正确读卡后引发的事件。 l OnStatus (State, Msg) IDCardWeb 读卡的状态改变时引发的事件。 State 状态ID,整型 Msg 文字消息,字符型 State Msg 0 关闭 1 启动 2 找到阅读器:…… 3 搜寻卡(证)中,n 秒后关闭… 4 选择卡(证)失败 5 读取基本信息失败。…… 6 读取追加数据失败。…… 7 照片解码错误。…… 8 软件未授权 9 读卡成功 10 读卡时系统出现错误。…… 11 未找到USB读卡设备(连接USB端口失败) l OnMessage(Msg) IDCardWeb 的消息事件。主要在错误时引发。 Msg 文字消息,字符型 说明:IDCardWeb 的事件无法在javascript下被捕获(还没找到原因),可以通过在vbscript下捕获事件,再转发到javascript中来解决。 示例: <!-- ************************************************** Vbscript下捕获控件事件,转发到javascript中 ***************************************************--> <script type="text/vbscript"> <!-- '-- 正确读卡后产生的事件 Private Sub idc_OnRead() Call onRead() End Sub '-- 状态事件,State:状态ID,Msg:文字消息 Private Sub idc_OnStatus(State, Msg) Call onStatus(State,Msg) End Sub '-- 消息事件,主要是读卡错误时引发,Msg:文字消息 Private Sub idc_OnMessage(Msg) Call onMessage(Msg) End Sub '-- 按控件上清除图标时引发的事件 Private Sub idc_OnClear() Call onClear() End Sub --> </script> <!-- ************************************************** javascript下处理vbscript中转发过来的控件事件 ***************************************************--> <script type="text/javascript"> <!-- //- 正确读卡后产生的事件(从vbscript中转发过来) function onRead() { var o = document.getElementById("idc") o.ReadClose(); //- 关闭自动读卡,以便处理数据 //-处理数据代码段…… o.ReadStart(); //- 重新启动自动读卡 } //- 状态事件(从vbscript中转发过来) function onStatus(state,msg) { idcStatus.innerHTML = "状态>> " + state + "." + msg; } //- 消息事件,主要是读卡错误时引发(从vbscript中转发过来) function onMessage(msg) { var myDate = new Date(); onMsg.innerHTML = "消息>> " + myDate.toLocaleTimeString() + " " + msg; } //- 清除事件(从vbscript中转发过来) function onClear() { msg.innerHTML = ""; } --> </script> l afterSend(res) 执行Send方法,正确上传数据后产生的事件。 res ---- 服务端返回的文本,字符型 八、IDCardWeb的对象 l idCard 身份证信息对象。 正确阅读身份证后,身份证信息保存在此对象中。 idCard.idName 姓名,替换了生僻字的(如果有的话) idCard.idNameCode 姓名编码,Unicode字节ASCII码,如:837B 795E F86A,建议在数据库中也保存此编码 idCard.idRarelyWord 姓名中生僻字编码,Unicode字节ASCII码+姓名中第几个字,如:837B1 795E2,表示为:第一个字为生僻字(837B),第二个字为生僻字(795E) idCard.idOriginalName 姓名,原始的(没有做生僻字替换处理的) idCard.idCardNo 身份证号码 idCard.idSex 性别 idCard.idSexCode 性别代码,0:未知,1:男,2:女,9:未说明 idCard.idNation 民族 idCard.idNationCode 民族代码,01:汉,02:蒙古,03:回,…… idCard.idBorn 出生日期,格式如:19920606 idCard.idYear 出生年份 idCard.idMonth 出生月份 idCard.idDay 出生日 idCard.idAddress 住址 idCard.idGrantDept 签发机关 idCard.idBeginTime 有效期限的起始日期,格式如:20060524 idCard.idEndTime 有效期限的终止日期,格式如:20260524 idCard.idNewAddress 最新住址 idCard.idPictureBase64 经过Base64编码的照片数据 idCard.idPicture 未经编码的照片原始数据(二进制) idCard.idVerify MD5校验码,由用户指定数据组合生成的MD5编码,用于在服务端校验上传的数据是否完整,防止被篡改 idCard.SAMID 阅读器的设备ID idCard.getData(field) 获取指定身份证信息字段的base64编码 field ---- 身份证信息字段名,如:IDName 示例:idc.icCard.getData("IDName"); 民族代码表: 01 汉 02 蒙古 03 回 04 藏 05 维吾尔 06 苗 07 彝 08 壮 09 布依 10 朝鲜 11 满 12 侗 13 瑶 14 白 15 土家 16 哈尼 17 哈萨克 18 傣 19 黎 20 傈僳 21 佤 22 畲 23 高山 24 拉祜 25 水 26 东乡 27 纳西 28 景颇 29 柯尔克孜 30 土 31 达翰尔 32 仫佬 33 羌 34 布朗 35 撒拉 36 毛南 37 仡佬 38 锡伯 39 阿昌 40 普米 41 塔吉克 42 怒 43 乌孜别克 44 俄罗斯 45 鄂温克 46 德昂 47 保安 48 裕固 49 京 50 塔塔尔 51 独龙 52 鄂伦春 53 赫哲 54 门巴 55 珞巴 56 基诺 57 其它 98 外国人入籍 l about 控件信息对象。 about. ProductName 控件名称 about. Version 控件版本 about. LicenseURL 当前授权URL about. LicenseDate 当前授权到期日期 about. RarelyWord 当前生僻字表 about. Author 作者 about. AuthorEmail 作者电子邮件 about. AuthorQQ 作者QQ号码 about. CopyRight 版权申明 about. About() 返回控件关于信息 九、生僻字表和数据签名编码器 l A.签名数据字段列表 在编码器启动时,会读取编码器所在文件夹下的Verify.txt文件内容到此列表中。每行表示一个数据字段和一个字符串,“:”后面的内容为注释,可在行首插入单引号“’”注释掉整行,每行的顺序即为字段组合为表达式的顺序。在控件正确读取身份证时,会用此表达式合成字符串来计算MD5,服务端必须也用此表达式合成字符串计算MD5与之相比较来判断数据是否被篡改。以下为数据字段的关键字: 数据字段的关键字 注释 Session 对话变量 IDName 姓名 IDCardNo 身份证号 IDPictureBase64 照片 IDNameCode 姓名编码 IDSex 性别 IDSexCode 性别编码 IDNation 民族 IDNationCode 民族编码 IDBorn 出生日期 IDAddress 住址 IDGrantDept 签发机关 IDBeginTime 开始期限 IDEndTime 结束期限 IDNewAddress 最新住址 IDRarelyWord 姓名生僻字 SAMID 阅读器安全模块ID 示例: IDName:姓名 Hh7y%G&n:自定义字符串 IDCardNo:身份证号 IDPictureBase64:照片 'IDNameCode:姓名编码 以上设置的表达式含义为:姓名+”Hh7y%G&n” +身份证号+照片 l B.生僻字列表 在编码器启动时,会读取编码器所在文件夹下的RarelyWord.txt文件内容到此列表中。每行一个生僻字转换编码,“=”左边为生僻字字节ASCII码(可以通过身份证阅读获取),“=”右边为用于替换的内容,“:”后面的内容为注释,可在行首插入单引号“’”注释掉整行。示例: 3BE4=?:韡 62E3=?:王莹 C336=?:jie 1EE4=?:钅泉 42E3=?:煇 3534=?:亻于 l C.编码密钥 用于生僻字表和数据签名编码的密钥。请妥善保管此密钥。 l D.全部生僻字替换内容 设置此项内容时,不管B部分替换的内容是如何设置的,全部生僻字替换内容将设置为此项内容。 l E.生成数据签名表达式编码和生僻字表编码 鼠标单击此按键时,编码器按A、C的设置生成数据签名表达式的加密字符串,按A、B、C、D生成生僻字表的双重加密字符串。 l F.数据签名表达式的加密字符串 通过E生成的数据签名表达式加密字符串,复制此字符串赋值到IDCardWeb控件的Verify属性。 l G.生僻字表的双重加密字符串 通过E生成的生僻字表的双重加密字符串,复制此字符串赋值到IDCardWeb控件的RarelyWord属性。此字符串的生成与数据签名表达式A有关,数据签名表达式变更时,要重新生成G。 l H.生僻字码与生僻字对照表 在E生成加密字符串时,编码器解码出B中的生僻字编码到对照表中。如果在H中可以显示出汉字,说明此编码的汉字是当前计算机字库中有的汉字,可能不是生僻字,建议取消此字的替换。 十、联系作者 Email: phototake@ QQ号码: phototake@ 或 1091142715 十一、历史主要更新 1.1 正式发布。 1.2 增加多界面选择。新增加idCard对象的方法getdata,用以获取身份证信息字段的base64编码数据。 1.3 增加Send方法和afterSend事件,用以发送二进制照片数据和指定身份证信息字段数据到指定的URL。改变界面类型设置和转换的办法,新增加Size属性用来设置转换界面类型。 1.3.0.3 增加Send方法的发送方式参数,默认通过FORM方式发送数据。 十二、附录 l 高考网报和信息确认时生僻字问题的解决方案 1、生僻字的采集 身份证姓名中有哪些生僻字?这些生僻字在身份证字库中所使用的计算机内码是什么?在网报前,很难准确预测姓名中有哪些生僻字以及它的内码。我们可以使用以下的工作流程来解决此问题。 A.网报时考生统一用规定字符(如“?”)代替生僻字。注意:考生可能把自己不会输入但计算机通用字库中有的字,也用“?”代替。 B.信息确认时读取身份证,服务端对上传的姓名和网报的姓名进行比对。发现不一致的字时,把从idCard.idNameCode 获取的相对应字编码及相关信息反馈到客户端。 C.信息确认工作人员核查是否是生僻字,排除因考生不会输入用“?”代替的字。确认是生僻字的,填写生僻字拼音、生僻字字形说明等信息提交服务端保存,建议同时上传此身份证的扫描图像。通知上级工作人员审核和处理生僻字。 D.系统管理人员审核确认提交的生僻字。建议利用身份证扫描图像截取生僻字图像,与生僻字编码关联建立生僻字图像库。 2、生僻字表的生成 服务端利用已审核的生僻字记录生成符合使用说明书中的[九(B)]项要求格式的RarelyWord.txt 文件,并用生僻字和数据签名编码器生成加密的字符串。 3、更新系统的生僻字表加密字符串 服务端软件系统把生僻字表加密字符串更新到IDCardWeb 的RarelyWord属性中。客户端刷新页面(或采取自动加载机制),IDCardWeb 加载了生僻字表后,再次阅读含生僻字表中存在编码的身份证时,IDCardWeb 将自动把生僻字替换为指定的内容。 4、增强应用 服务端软件建立关联生僻字图像库的姓名提取接口函数,把姓名中的生僻字用生僻字图像代替返回。在各类打印和页面显示时显示输出生僻字图像,解决生僻字打印、显示等问题。 l IDCardWeb 演示和示例源代码 演示地址::100/IDCardWeb 示例代码请查看此演示页面的源代码。 IDCardWeb使用手册 phototake@ 23
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服