`
yinxuchina
  • 浏览: 43454 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

在b/s架构下实现与读卡器(射频读写机)通讯

    博客分类:
  • java
阅读更多

由于项目需要,要求实现在B/S下,与非接触卡读写机进行通讯。由于在B/S架构下程序一般放在服务器端,那么怎样来实现对客户端的硬件(读卡器)操作呢?我的解决思路是使用japplet本地dll文件(这个文件一般硬件开发商会提供)。要想用java调用dll必须使用JNI来调用。

public class JavaRD
{
	public JavaRD()
	{
	}
	static
	{
		System.loadLibrary("RD");
	}
	public native int dc_init(int lPort,int lBaud);
	public native short dc_exit(int lDevice);
	//................
}

 
写好JNI后,调试硬件通过后就可以使用japplet去调用。但是问题又来了,用Applet写的java小程序如果没有经过签名,那么访问客户端程序下载后会受到安全限制。

通常的浏览器运行Applet程序的安全策略如下:
(1)Applet不能启动任何本地的可执行文件。
(2)Applet只能与它们最初驻留的服务器通信,而不能与其它位于“网络”上客户机本地网络上的服务器通信。
(3)Applet不能读写本地文件系统。
(4)Applet只能获取本地计算机的部分非敏感性信息,如操作系统名称和版本号、文件及路径分隔符、换行符等。
(5)Applet运行时弹出的窗口都会带有一些警告消息。
(6)此外,Applet还可通过数字签名(标明其作者和来源地)进行不同的安全授权。
Applet读写本地文件:
(1) 你可以采用签名的办法解决。
(2) 你可以修改客户端jre的安全设计来解决。
这里一般选取第一张方案,对applet的jar包进行数字签名。
数字签名作为一种电子身份的认证的手段,被普遍用于网上银行,安全网络通信等领域.数字证书可向专门的CA机构申请,有免费的数字证书和付费的数字证书。付费的太贵玩不起,免费的可以在网上申请,也可以通过jdk中的keytool工具进行生成没有经过认证的数字证书。具体方法如下:
(1)将java小程序打包
jar cvf test.jar d3.class 也可以通过fat jar等工具生成。
(2)生成名为chinani.store的密钥库,别名为d3
  keytool -genkey -keystore d3.store -alias d3
 

D:\>keytool -genkey -keystore d3.store -alias d3
输入keystore密码:  123456
您的名字与姓氏是什么?
  [Unknown]:  yx
您的组织单位名称是什么?
  [Unknown]:  成都XX公司
您的组织名称是什么?
  [Unknown]:  XX
您所在的城市或区域名称是什么?
  [Unknown]:  成都
您所在的州或省份名称是什么?
  [Unknown]:  四川
该单位的两字母国家代码是什么
  [Unknown]:  cn
CN=yx, OU=成都XX公司, O=XX, L=成都, ST=四川, C=cn 正确吗?
  [否]:  y

输入<d3>的主密码
        (如果和 keystore 密码相同,按回车):

完毕后会生成一个d3.store文件,该文件中保存有别名为d3的数字证书.输入以下命令即可查看此数字证书:

(3)导出d3.cer数字证书
   keytool -export -keystore d3.store -alias d3 -file d3.cer

 

D:\>   keytool -export -keystore d3.store -alias d3 -file d3.cer
输入keystore密码:  123456
保存在文件中的认证 <d3.cer>

(4)对d3.jar文件进行签名
jarsigner -keystore d3.store  D3.jar d3

 

D:\>jarsigner -keystore d3.store  D3.jar d3
输入密钥库的口令短语: 123456

警告: 签名者证书将在六个月内过期。

好现在就生成了一个带数字签名的jar包。

 

最好写jsp加载applet

 

<%@ page language="java"  pageEncoding="UTF-8"%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>

	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
    <TABLE BORDER=5 ALIGN="CENTER"> 
  <TR><TH CLASS="TITLE"> 读卡程序DEMO 
</TABLE> 
<P> 
<CENTER> 
<jsp:plugin type="applet" code="com.yunda.ui.CardUI" archive="D3.jar"  width="500" height="420"> 
</jsp:plugin> 
<br> 
</CENTER>
  </body>
</html>

 

 

分享到:
评论

相关推荐

    MATLAB实现组态王中TCP_IP读卡器监控方法.pdf

    本篇文档主要讲述了利用MATLAB与组态王相结合的方法来实现对基于TCP/IP的射频读卡器的监控。为了达成这一目标,文档详细阐述了组态王软件平台的特点、MATLAB在TCP/IP通信中的应用、以及利用OPC技术实现两者之间的...

    IP射频卡读写器开发源码

    2. "TCPIP读卡器易语言开发源码.e":这是主要的源代码文件,使用易语言编写,包含了实现TCP/IP通信和射频卡读写的函数和类。开发者可以通过阅读和分析这些代码来了解整个系统的架构和工作原理。 3. "sock.fne"、...

    电梯门禁系统:包括系统原理图,通信流程图和C语言源程序 AT89C52控制H6152读卡器读写Mifare射频卡并通过CAN总线连接系统主机,CAN总线控制器为SJA1000,收发器为P82C250

    H6152读卡器是一种非接触式IC卡读写模块,专门用于读取Mifare系列的射频卡。Mifare卡采用高频(13.56MHz)无线通信技术,具有较高的数据传输速率和安全性。读卡器通过天线与卡片建立通信,读取卡片的ID和其他加密...

    基于MF RC522的Mifare射频卡读写模块开发

    通信模块则采用RS232或RS485协议与PC机交互,实现单台或多台阅读器的控制。而人机接口包含液晶显示、键盘和语音输出,为用户提供友好的交互体验。 Mifare射频卡读写模块的工作原理涉及射频卡与读写模块间的无线通信...

    RFID读写器开发包(完整版)

    结合蓝牙技术,可以实现无线连接,便于与智能手机、平板电脑或其它蓝牙设备进行通信,方便在移动场景下使用。 2. **开发文档**: 开发文档通常包含技术规格、接口定义、协议说明等内容,对于开发者来说是理解读写...

    rfid读写器设计与研究

    综上所述,RFID读写器的设计与研究涉及到多个方面的技术细节,包括系统架构设计、硬件模块选择、信号处理技术等。通过对这些关键要素的深入理解与掌握,能够更好地应用于物流管理、生产制造、资产管理等多个领域,...

    西门子PLC与RFID读写器的串行通信.pdf

    读写器与PLC之间的通信通常是通过串行接口实现的,常见的串行通信协议有RS-232、RS-485等。在实施通信过程中,读写器需要遵循特定的命令集和数据传输格式,以确保与主机之间的有效通信。 在本文中,作者以思谷公司...

    STC11F32单片机的射频读卡器设计

    在射频读写系统中,电子标签是与读卡器进行交互的介质。电子标签通常由芯片和天线组成,存储着必要的识别信息,并能在接收到读写器的信号后返回相关信息。而读写器的主要任务是向电子标签发送读取信号,解码标签返回...

    在手机设计方案中采用NFC架构和技术的实现方法.pdf

    这种模式下,手机可以像传统智能卡一样与读卡器交互。 NFC技术的实现通常需要NFC控制器芯片,如Philips的PN511。这种芯片提供HVQFN32和HVQFN40两种封装形式,能够通过Host接口与微处理器连接,并通过RC谐振电路和...

    射频卡RC522资料含程序

    2. **RFID系统架构**:包括读卡器(或称为天线)、射频接口、微控制器和应用软件。RC522作为读卡器的一部分,主要负责处理射频信号的收发,而微控制器则负责解析接收到的数据和执行命令。 3. **通信协议**:RC522...

    基于STM32的免驱动RFID读卡器设计.pdf

    这份文档是一篇关于基于STM32控制器设计免驱动RFID读卡器的论文,内容涵盖了硬件设计和软件设计两个主要方面。论文指出选用的微控制器是STM32F103C8T6,其基于ARM Cortex-M3内核,具有丰富的工业标准接口,并强调了...

    读卡器,nrfid-rc522

    RC522是由荷兰NXP公司推出的一款高性能、低功耗、低成本的非接触式RFID读卡器芯片,适用于13.56MHz频率下的ISO14443A标准的RFID卡片。RC522支持SPI通信接口,易于与各种微控制器集成,被广泛用于各种RFID应用中。 #...

    基于物联网技术的学生智能考勤系统设计与实现.pdf

    系统的设计思想是,在各教学楼的门厅设置远距离射频识别读写器,学生携带装有电子标签(RF-SIM卡)的手机通过教学楼门厅,读写器大量快速识别通过门厅的学生身份,并将数据传输到远端服务器,记录下学生进人和离开...

    基于STM32多功能充值消费一体机设计.docx

    MF-RC522 读卡器模块则是一个高度集成的 13.56MHz 非接触式读写卡芯片,具备支持 ISO 14443A/MIFARE 协议的能力,能够与 ISO 14443A/MIFARE 兼容的卡片进行通信。微处理器通过 SPI 接口与 MF-RC522 实现高速串行通信...

    基于RFID的门禁系统方案.pdf

    射频读写器通过射频信号与IC卡(电子标签)通信,完成读卡、存储和发送数据的工作。电子标签由IC卡片和感应天线组成,封装在一个标准的PVC卡内。读写芯片负责读写IC卡。主控器由单片机及其外围电路组成,用于控制...

    NXP PN512数据手册

    NFC是允许用户仅通过将手机或其他设备靠近标签、读卡器或其他兼容设备,即可进行数据交换的一种技术。NFC具备多种工作模式,可实现设备间的无线通信,同时具备与现有非接触式智能卡技术(如ISO/IEC 14443和FeliCa)...

    基于ARM的射频卡考勤系统设计.pdf

    在当今社会,企业与组织对于考勤管理的需求日益增长,传统的考勤方式如打卡机、签到簿等已难以满足高效率和高安全性的要求。因此,基于ARM的射频卡考勤系统应运而生,其采用先进的技术手段,极大提升了考勤管理的...

Global site tag (gtag.js) - Google Analytics