web浏览器使用ic卡或磁卡读卡器自动弹出页面

最近手上一个项目,健身场馆会员管理系统,新增加一个需求,希望客户一刷会员卡自动弹出会员的信息和预约的课程信息

读卡器就是市面上普通的ic卡或磁卡的读卡器,某宝上买的,厂家没有提供任何浏览器插件

机器拿到手上发现,一刷卡鼠标只要是可输入的状态立马就能输出会员卡的卡号,想到可能刷卡器是模拟的键盘操作

写了一段js代码测试了一下,发现果然是触发的键盘的数字键以及enter键,由于是机器操作,两次键盘事件触发的时间极短(至少比人快很多)

机器刷卡:

      

手动输入:

    

那么我们就可以利用人和机器的时间差,干点事情

测试代码如下

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
    </head>
    <body class="hold-transition login-page">
        <!-- 输入框 -->
        <input type="text" name="" value="" autofocus>
    </body>
    <script>
        window.onload = function(e){
            code = ""; // 模拟输入的值
            var lastTime,nextTime;// 记录两次键盘的时间
            var lastCode,nextCode;// 两次键盘的键码值
            document.onkeypress = function(e) {// 监听键盘事件
                nextCode = e.which;// 当前的键码
                nextTime = new Date().getTime();// 当前的毫秒数
                console.log(nextCode,(nextTime - lastTime));
                if(nextCode >= 48 && nextCode <= 57){// 只关注数字键
                    if(lastCode != null && lastTime != null && nextTime - lastTime <= 30) {// 相差30以内说明是机器刷卡
                       code += String.fromCharCode(lastCode);// 把键盘码返回为对应的值
                    } else {// 手动在输入
                       code = "";
                    }
                    // 当前的键盘码和时间作为下一次的上一次
                    lastCode = nextCode;
                    lastTime = nextTime;
                }
                if(nextCode == 13){//enter键代表刷卡结束
                    if(code && (nextTime - lastTime) <= 100){// 刷卡的卡号获取成功,且是机器触发的enter
                        code +=  String.fromCharCode(lastCode);
                        window.location.href="http://www.baidu.com";
                    }
                }
            }
        }
    </script>
</html>

原文地址:https://www.cnblogs.com/yangfei123/p/10123312.html

时间: 2024-11-12 17:24:15

web浏览器使用ic卡或磁卡读卡器自动弹出页面的相关文章

BS结构下如何开发跨web浏览器的IC卡读卡器程序

在BS结构的程序中,如何开发出跨web浏览器的IC卡读卡器程序呢? 一般来说在BS结构的程序中使用物理硬件会有很多的限制,通过activex技术解决的ocx控件只能在IE上使用,不能在chrome和firefox中使用.友我科技提供的RFID读写器云服务彻底解决了这个问题,他不仅可以在IE使用,也可以在chrome,firefox等浏览器上使用. 友我科技rfid读写器云服务的优势:1.该系统在单机,局域网,互联网都可以使用,只要客户端安装云服务程序就行.2.客户端同时支持net frame3.

JAVA WEB项目:IC卡管理系统

以下记录项目学习过程中的命令和操作 1.命令记录 2.资料记录 2.1数据库相关: 在Workbench中导入.sql文件(导入数据库文件) MySQL数据库的安装与配置 利用Workbench建立数据库,建立表,表中添加数据 原文地址:https://www.cnblogs.com/ehanla/p/9753694.html

推进安全出租屋之IC卡门禁读卡器

萧岗村辖内有出租屋3300多栋流动人口有10万多人是典型的"城中村".新市街,结合"三打"工作推行一系列务实措施.在萧岗村率先推进出租屋IC卡电子门禁,并将"旅业式"管理成功融入门禁系统建设中.1000多栋出租屋安装了电子门禁系统以后,没有发生过一宗刑事案件,也没有发现制假等违法犯罪行为.目前萧岗村申报安装门禁系统的出租屋有1600多栋,截至4月10日,已对1002户出租屋进行了安装.预计到今年6月前,整个村80%都将安上门禁系统,到年底,将达到

IC卡解密从零开始学1 (也许会有2) 解密工具V2 V3大放送 By:lookyour

前段时间发了一个破解的PN532工具,详见 ===========================IC卡解密工具 PN532工具XP 爆破版http://www.52pojie.cn/thread-597896-1-1.html IC卡解密从零开始学2  解密工具PN532-mfoc-mfcuk-GUIhttp://www.52pojie.cn/thread-604402-1-1.html =========================有很多人私信和回复希望有个详细点的介绍... 好吧,本着

金融卡IC卡知识50问

1.什么是金融IC卡? 金融IC卡又称为芯片银行卡,是以芯片作为介质的银行卡.芯片卡容量大,可以存储密钥.数字证书.指纹等信息,其工作原理类似于微型计算机,能够同时处理多种功能,为持卡人提供一卡多用的便利.我行现阶段发行的是复合金融IC借记卡. 2.我行金融IC卡遵循什么标准? 我行金融IC卡遵循的标准是中国人民银行的PBOC2.0标准,即中国金融集成电路(IC)卡规范(2010年颁布). 3.金融IC卡使用是否安全? 金融IC卡遵循双重密钥动态验证,很难被复制,有效防止伪卡盗刷,安全性进一步加

第十一章:WEB浏览器中的javascript

客户端javascript涵盖在本系列的第二部分第10章,主要讲解javascript是如何在web浏览器中实现的,这些章节介绍了大量的脚本宿主对象,这些对象可以表示浏览器窗口.文档树的内容.这些章节同样涵盖重要的web应用所需要的网络编程API.本地存储和检索数据.画图等.主要包含内容有以下章节: web浏览器中的javascript / window对象 /  脚本化文档 /  脚本化css / 事件处理 / 校本化http / jQuery类库 / 客户端存储  /  多媒体和图形编程 /

emacs中的web浏览器--eww

1 简介 EWW,全称the Emacs Web Wowser,是Emacs24.4开始自带的一款web浏览器. 要使用EWW,需要有libxml2的支持. 在ubuntu下,可以使用`sudo apt-get install libxml2`来安装 在windows下,可以去http://ncu.dl.sourceforge.net/project/ezwinports/libxml2-2.7.8-w32-bin.zip 下载libxml2 2 基本操作 启动eww M-x eww eww-m

IC卡、ID卡、M1卡、射频卡的区别是什么

IC卡.ID卡.M1卡.射频卡都是我们常见的一种智能卡,但是很多的顾客还是不清楚IC卡.ID卡.M1卡.射频卡的区别是什么,下面我们一起来看看吧. 所谓的IC卡就是集成电路卡,是继磁卡之后出现的又一种新型信息工具.IC卡在有些国家和地区也称智能卡(smart card).智慧卡(intelligent card).微电路卡(microcircuit card)或微芯片卡等.它是将一个微电子 芯片嵌入符合ISO 7816标准的卡基中,做成卡片形式. 应用范围:目前IC卡已经十分广泛地应用于包括金融

SeaJS:一个适用于 Web 浏览器端的模块加载器

什么是SeaJS?SeaJS是一款适用于Web浏览器端的模块加载器,它同时又与Node兼容.在SeaJS的世界里,一个文件就是一个模块,所有模块都遵循CMD(Common Module Definition)规范.SeaJS本身遵循(Keep it Simple, Stupid)理念开发,API仅有几个. 为什么用SeaJS?假如我们要开发一个web应用App,在这个应用中需要使用jquery框架.App的首页index.html会用到module1.js,module1.js依赖module2