我们常用的地铁卡/银行卡,竟然运行着一个 Java 虚拟机

news/2024/9/18 3:43:46/文章来源:https://www.cnblogs.com/zh94/p/18357546

我们日常使用 NFC 卡可以用来刷地铁,进出门禁,但是你有没有想过,

当我们使用一个 NFC 的 IC 卡刷卡进入地铁的时候,此时系统是如何知道我这个卡上有多少充值余额的?

这个薄薄的 NFC 卡到底有什么魔力,除了可以刷卡进地铁,还可以去银行取钱,进出小区门禁。

今天我在看到一些物联网的知识时,在发现原来这中间的技术原理原来是这么回事

原理

目前我们常见的NFC智能IC卡上,实际是运行着 JavaCard 虚拟机,NFC智能 IC 卡上可以运行由精简后的 Java 语言编写的卡应用(简称 Applet)。

NFC智能 IC 卡的 Applet 不能自己启动,必须由外部终端(例如 POS 机,地铁刷卡终端等)向卡片发送 Select 命令,由此选中卡片中的 Applet,Applet 才能运行。

那么我们基于 Java API,实现了一套JavaCard applet小程序后,如何将该小程序运行在 NFC 上呢。

1、使用智能卡读卡器连接到计算机,并确保读卡器能够识别NFC智能卡。

2、通过个人化工具选择卡上的卡管理应用(通常是Global Platform卡管理应用)。

3、使用个人化工具将CAP文件安装到智能卡上。(我们 Applet 程序打包后是一个 CAP 文件)

此时这个 NFC 卡上就运行着一个小程序了。

但问题又来了。既然这个 NFC 上一直运行着 Java 虚拟机,难道这个 NFC 不需要耗费电源吗?

没有电源,这个 NFC 小程序如何运行?

答案是:还真不用外接电源,通常 NFC 会使用无线感应供电。

NFC智能卡通过无线感应方式从NFC读卡器或NFC设备获取电力。当NFC卡片靠近读卡器时,读卡器产生的交变磁场会在卡片内部的线圈中感应出电流,这个过程称为电磁感应。因此,NFC卡片不需要内置电池,它们通过这种方式获得所需的电力来运行。

真的是太6啦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/783407.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jenkins配置分布式构建环境——添加固定Agent并使用JNLP启动Agent详解

1、概述 在《Jenkins部署架构概述 》这篇博文中对Jenkins部署架构进行了讲解。对于分布式架构,Jenkins包括固态Agent和动态Agent两种方案。固定Agent(常用于虚拟机):Agent容器一直运行,任务构建完成后不会销毁,创建完成后将一直占用集群资源,配置过程较简单。 动态Agent…

在项目里快速运行史上最强开源大模型「Llama 3.1」

7月份,Meta正式发布迄今为止最强大的开源模型——Llama 3.1,包含了405B、70B和8B三个版本的模型。 作为开发者,如何在项目里快速运行LLaMa3.1大模型? 今天,我们结合英智未来自己的LLM推理API平台,给大家介绍一套免费实践流程。 免费使用地址:https://cognihub.baystone…

利用Jenkins Pipeline高效部署Kubernetes服务

什么是 Jenkins Pipeline Jenkins Pipeline是一种持续集成和持续交付(CI/CD)的功能,它允许开发者将复杂的构建、测试和部署流程编码为一系列称为“管道”的自动化步骤。这些步骤以Groovy脚本的形式编写,并且可以在Jenkins中可视化管理。Pipeline提供了代码化和可重用的构建…

DRM:清华提出无偏差的新类发现与定位新方法 | CVPR 2024

论文分析了现有的新类别发现和定位(NCDL)方法并确定了核心问题:目标检测器往往偏向已知的目标,忽略未知的目标。为了解决这个问题,论文提出了去偏差区域挖掘(DRM)方法,以互补的方式结合类无关RPN和类感知RPN进行目标定位,利用未标记数据的半监督对比学习来改进表征网络…

城市信息模型:构建未来智慧城市之基底座

在智慧城市的宏大叙事中,城市信息模型(City Information Model, CIM)平台如同城市智能的神经中枢,将数据、空间与技术深度融合,为城市规划、管理、服务、居民生活提供了前所未有的洞察与优化途径。CIM平台的构建不仅是技术的集成,更是智慧城市的灵魂,它以三维可视化、数…

8.10作业

代码:5秒后跳转马哥教育官网 如下:

ALV TABLE-COTROL

1.画屏幕 2.流逻辑CONTROLS gr_9112_control TYPE TABLEVIEW USING SCREEN 9112.PROCESS BEFORE OUTPUT.MODULE status_9112. *处理LOOP从内表读到表控制LOOP WITH CONTROL gr_9112_control.MODULE filltbl1_9112.ENDLOOP.PROCESS AFTER INPUT. *处理LOOP从表控制更新内表LOOP …

Tornado 龙卷风混币原理

项目背景 Tornado(https://tornado.cash/)是以太坊隐私赛道著名的混币项目,其混币技术主要使用了 zk-SNARK 零知识证明。 1、关于 zk-SNARK 零知识证明的原理可以参见 if(DAO) 之前的文章:https://mirror.xyz/0xd05cFA28Eaf8B4eaFD8Cd86d33c6CeD1a1875417/X3qSOjObTknXQ_iG…

java浅拷贝BeanUtils.copyProperties引发的RPC异常

背景 近期参与了一个攻坚项目,前期因为其他流程原因,测试时间已经耽搁了好几天了,本以为已经解决了卡点,后续流程应该顺顺利利的,没想到 人在地铁上,bug从咚咚来~ 没有任何修改的服务接口,抛出异常: java.lang.ClassCastException: java.util.HashMap cannot be cast t…

RSS 源:在信息洪流中找回你的时间掌控权

简单介绍了 RSS 后,那么关键的一步就是建立好自己的 RSS 源了。200.RSS源管理 简单介绍了 RSS 后,那么关键的一步就是建立好自己的 RSS 源了。 并不是所所有平台都会提供 RSS 源,因此我们也没办法直接去订阅。 目前使用 RSS 的难题之一就是 RSS 源的匮乏,是无数人重新拥抱 …

P5431 【模板】模意义下的乘法逆元 2

看到5e6的数据,500ms的时限,\(O(NlogN)\)快速幂直接跑肯定会T掉,那我们就要考虑优化一下式子。 我们令\(s = \prod_{1}^{n}{a[i]}\) ,那我们给第i个式子通分,就为$ \frac{k^i*s/a[i]}{s} $ \(s/a[i]\) 就相当于$ \prod ^{i-1}_{1}{a[i]}* \prod _{i+1}^{n}{a[i]}$ 因此我们只…

IOS UI自动化脚本

1.安装rethinkdb https://rethinkdb.com/docs/install/osx/ 2.安装bunch包错修复setup.py里面的数据,去掉U 3.imp包变成了importlib需要替换import Imp# moduleFile, pathName, desc = imp.find_module(moduleName, [os.path.dirname(modulePath)])# module = imp.load_module…