java与硬件交互:U盾与JSP的集成
客户U盾是一个带智能芯片、形状类似于U盘的硬件设备,是工商银行与微软等国际知名公司共同合作开发,并应用了智能芯片信息加密技术的一种数字签名工具。一旦您把自己在银行的账户纳入此U盾管理,在网上银行办理转账汇款、B2C支付等业务都必须启用客户U盾进行验证,而客户U盾是唯一的、不可复制的,任何人都无法利用您的身份信息和账户信息通过互联网盗取您的资金。
在U盾中,存放一个与硬件唯一匹配的ID,SHA1种子码即3DES密钥。在U盾与程序结合时,通过数据库导入的方式将这些信息从设号工具产生的数据库中导入到用户数据库中。
完成数据库的导入后,进入界面的判断。首先编写界面HTML代码,大概思路是添加一个<select>标签,一个密码框,查找到U盾输入密码才能进行相应的操作。
在查找U盾的按钮上添加相应的查找U盾的JS代码,目的是判断有没有插入U盾。如果检测到U盾,那么把U盾内置的唯一的ID显示到选择框中。在后台取得该ID和相应的密码做比对,如果一样,则进行下一步操作。
在界面获取U盾的JS代码为
function UFind() {var rtn = IA300_CheckExist();if (0 < rtn) {/*alert("找到"+rtn+"把锁, 请在列表中选择你需要设置的加密锁. 注意请自行排除管理员锁!");*/document.getElementById("userUK").options.length = 0; //初始化列表for (i = 0; i < rtn; i++) { //获取所有加密锁硬件IDvar id = IA300_GetHardwareId(i);if (id == "") {alert("获取第" + (1 + i) + "把锁硬件ID失败,错误码:"+ IA300_GetLastError());} else {document.getElementById("userUK").options[i] = new Option(id, id);}}} else {alert("未找到加密锁!");document.getElementById("userUK").options.length = 0;document.getElementById("userUK").options[0] = new Option("请先查找U盾!", "请先查找U盾!");return false;}}
在界面加载的时候还需要调用一个JS方法,判断是否支持当前浏览器,是否安装U盾的插件。(关于这些JS,软件开发商不必担心,大多都有现成的,拿过来直接引入到项目中即可。)
function OnPageLoad() {var browser = DetectBrowser();if (browser == "Unknown") {alert("不支持该浏览器, 如果您在使用傲游或类似浏览器,请切换到IE模式");return;}//createAdminElementIA300() 对本页面加入IA300插件createElementIA300();//DetectActiveX() 判断IA300Admin是否安装var create = DetectIA300Plugin();if (create == false) {alert("插件未安装,请安装开发套件Plugin文件夹下的管理层插件。");return false;}}
如果这两部都能通过输入密码,验证密码和硬件的唯一ID,通过后台验证通过即可。硬件的使用不是想象中的那么难。很多接口都是硬件开发商都给写好,而且一般都会有现成的Demo。
java与硬件交互:U盾与JSP的集成相关推荐
- java和硬件交互_Java内存模型
Java内存模型 我们常说的JVM内存模式指的是JVM的内存分区:而Java内存模式是一种虚拟机规范,真实并不存在 Java虚拟机规范中定义了Java内存模型(Java Memory Model,JM ...
- java 硬件交互_Java关键字之native
一:什么是NATIVE Method 简单的讲,一个NATIVE Method就是调用了java调用非java代码实现的接口. native method 方法实现:该方法的实现是由非java语言实现 ...
- jsp里面java和js交互_jsp与js交互实例 | 学步园
使用jsp(就是java代码)拼js脚本: lefthead.jsp String basepath = request.getContextPath()+"/"; String ...
- js怎样和硬件交互_Node.js与JavaScript
有很多介绍nodejs的文章,也有很多教程,覆盖了服务器开发.桌面开发.移动端等等,但是鲜有文章明确的回答过一个问题:Node是什么? 这看起来是一个再简单过的问题了,真要答起来可不容易,不去深入研究 ...
- servlet传参给jsp和js与java变量互传(废弃,建议JSP开发使用jstl)
前端.后端.和js脚本数据交互 1.servlet传参数到jsp页面 1.1 servlet页面发送参数 1.2 jsp页面接收参数 2.jsp页面传参数给servlet 2.1 jsp页面提交参数 ...
- 转载——Java与WCF交互(一):Java客户端调用WCF服务
最近开始了解WCF,写了个最简单的Helloworld,想通过java客户端实现通信.没想到以我的基础,居然花了整整两天(当然是工作以外的时间,呵呵),整个过程大费周折,特写下此文,以供有需要的朋友参 ...
- Java与WCF交互(一):Java客户端调用WCF服务
最近开始了解WCF,写了个最简单的Helloworld,想通过java客户端实现通信.没想到以我的基础,居然花了整整两天(当然是工作以外的时间,呵呵),整个过程大费周折,特写下此文,以供有需要的朋友参 ...
- Java Web学习总结(13)——JSP入门
2019独角兽企业重金招聘Python工程师标准>>> 一.什么是JSP? JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发 ...
- java与js交互,相互调用传参
随着前端技术的发展与H5的广泛使用,移动端采用native+h5的方式越来越多了,对于Android来说就涉及到java与js的交互,相互调用传参等.下面就来看一下java与js交互的简单demo. ...
最新文章
- retain和copy还有assign的区别
- 学习开发语言 python 资料
- Probability(概率) vs Likelihood(似然)
- SSM框架笔记08:初探Spring——采用配置类与注解方式
- 华为 MateBook 14 Linux 版真机:搭载深度 Linux 系统
- 大学计算机科学计术的总结,学好大学计算机科学与技术 要注意当天小结
- 用ASP.NET Core 2.0 建立规范的 REST API -- GET 和 POST
- python三级联动菜单_2分钟制作智能式联动下拉菜单,轻松搞定重复内容,录入不出错...
- 串口命令自动发送_WIFI模块开发教程之W600基础篇3:串口通讯
- html 层次选择器,jquery层次选择器
- 聚焦数据安全管理——安踏信息安全管理体系实践
- PLSQL提示动态执行表不可访问,本会话的自动统计被禁止问题的解决
- 【老生谈算法】matlab实现K均值聚类算法——K均值聚类算法
- 腾创网络-webrtc视频会议软件
- java实现倒计时_Java实现倒计时代码
- pyspark steaming常规语句及操作
- alter命令的使用
- 解决win10右击鼠标卡顿问题
- Docker--(二)--测试
- 华为WLAN技术:AC/AP 实验
热门文章
- puppeteer安装
- 个人网页设计成品DW静态网页 HTML网页设计结课作业 web课程设计网页规划与设计 Web大学生个人网页成品 web网页设计期末课程大作业
- 像“激励猎狗”一样激励员工
- 《足球弹弹乐》成爆款获腾讯精品推荐,Cocos 专访开发商解密成功之道
- 搜狗浏览器的页面静音
- 微信小程序 1rpx border ios 真机显示不全
- 基于linux的嵌入式internet应用程序,基于Linux的嵌入式Internet应用(含项目代码)
- openwrt无线连接互联网的实现原理【2】
- 长春净月小学一对一补习班哪家比较好?
- 【电气专业知识问答】问:高压变频器有哪些特殊技术要求?