IC卡片使用基础

2023-11-18

一、 卡片基本概念

集成电路卡,即日常生活中常使用的卡片,可以根据读写特性分为两类:ID卡和IC卡。

ID卡,全称身份识别卡,是一种不可写入的感应卡,含固定编号。卡内除了卡号外,无任何保密功能,其“卡号”是公开、裸漏的。

IC卡,带有存储器,又称为记忆卡或存储卡,带有微处理器的IC卡又称为智能卡或智慧卡。记忆卡可以存储大量信息;智能卡则不仅具有存储信息的能力,而且还具有处理信息的能力,它的功能相当于一台微型计算机。IC卡按操作时是否需要与读卡器发生电气接触,可分为接触式IC卡和非接触式IC卡。

M1芯片,是指菲利浦下属子公司恩智浦出品的芯片缩写,全称为NXP Mifare1系列,常用的有S50及S70两种型号,S70与S50主要不同在于卡片的扇区分布和容量不同,M1 S50容量为8KBit,而M1 S70的容量达到了32KBit。常见的有卡式和钥匙扣式。现已经有国产芯片与其兼容,利用PVC封装M1芯片、感应天线,然后压制成型后而制作的卡即是智能卡行业所说的M1卡,属于非接触式IC卡,遵循ISO 14443a协议。

二、 卡片相关协议

ISO 7816:带触点的集成电路卡片国际标准,规定了卡片的材料、尺寸、电信号、传输协议及行业使用的交换命令。
ISO 14443:不带触点的集成电路卡片国际标准,定义了与非接触卡片数据传输的通信协议。ISO 14443按应用场景分为两类:ISO 1443a和ISO 14443b。ISO 14443a协议主要应用在生产自动化、门禁考勤、安防、一卡通和产品防伪领域;ISO 14443b协议因加密特性好,在我国主要应用为我国的二代身份证。

ISO 15693:不带触点的集成电路卡片国际标准,与ISO 14443不同:ISO 14443是近场耦合的,ISO 15693是远场耦合;ISO 14443具有加密功能,ISO 14693具有穿透性好,抗干扰性高的优点。ISO 15963常应用于高频、读距要求高的场合,如宽道门禁、物品识别等领域。

三、M1 S50卡片介绍

PICC:接近式卡片
PCD:接近式耦合设备(读卡器)
UID:唯一识别符

M1 S50(以下简称M1)卡片,卡的序列号是全球唯一的,不可修改的32bit数据,M1卡片容量为8KBit,分为16个扇区,每个扇区4块,每块可存放16byte数据(每个扇区的第4块存放密钥和权限控制字节),可以通过读卡器向卡中不同区域写入相关信息,各扇区独立使用并访问密钥独立,互不干扰。可用于一卡通领域,简易并且安全。工作频率13.56MHz,通信速度106Kb,通信距离2.5-10cm。
在读取M1卡片数据时,M1卡片只能够按块进行读取,读取扇区数据时,需要循环四次读取该扇区各块数据信息。
​​
在这里插入图片描述

1、M1卡片访问权限

M1卡片每个扇区有两个访问密钥:KeyA和KeyB,可以通过权限控制位设定对数据访问及密钥修改时所需要的密钥。(密钥默认值均为:FF FF FF FF FF FF)

  • 权限控制位
    ​​​​在这里插入图片描述​​
    默认值:FF 07 80 69(字节9 未用于权限控制,可用于用户数据存储)
  • 数据块访问权限
    ​​​​​​在这里插入图片描述
  • 块3访问权限控制
    ​​​​​​在这里插入图片描述

2、ISO 14443a命令集

​​​​在这里插入图片描述

(1) 概述

REQA
WAKE-UP
ANTICOLLOSION
SELECT
HALT

(2) REQA和WAKE-UP命令

这两条命令都是使卡进入Ready状态,不同的是REQA命令将PICC从IDLE进入Ready状态,而Wake-up从Halt状态进入Ready状态。PICC接收到REQA命令或者WAKE-UP命令后,在PCD能量场范围内的所有PICC同步发出应答(Answer To Request,ATQA),长度为2字节。(REAQ = “26H”,WAKE-UP = “52H”)

(3) ANTICOLLISION和SEKECT命令

命令格式:

SEL:串联级别选择代码:“93”选择UID CL1,“95”选择UID CL2,“97”选择UID CL3
NVB:有效位数量
UID CLn:由NVB指定的UID CLn,UID的一部分,由4个字节组成,1<= n <=3
BCC:校验,UID CLn校验字节,4个先前字节的“异或”值。
(CRC_A:CRC校验位,当NVB完整时,返回完整的卡序列号信息)

只要NVB没有规定40个有效位,若PICC保持在READY状态中,该命令就被称为ANTICOLLOSION命令。若NVB规定了UID CLn的40个数据位(NVB=‘70’),应添加CRC_A,该命令称为SELECT命令。如果PICC己发送了完整的UID,则它从READTY状态转换到ACTIVE状态并在其响应(Answer To Select, ATS)中指出UID完整。否则,PICC保持在READY状态中,并且该PCD应以递增串联级别启动一个新的防冲突环。

(4) HALT命令

命令格式:

如果PICC在HALT帧结束后1ms周期期间以任何调制表示响应,则该响应应解释为“不确定”。当卡片处于ACTIVE状态时,使用HALT命令,可以进入HALT状态。在HALT状态下,使用Wake-Up命令,可以使卡片再次进入READY状态。

3、M1卡片操作步骤

(1) 寻卡

REQA
PCD发出,用于寻找用于类型A PICC的工作场。
命令:26H
寻找到卡片,会收到两个字节的应答数据(ATQA)。

WAKE_UP
PCD发出,使已进入HALT状态的PICC回到READY状态,再次参与防冲突和选择规程。
命令:52H

(2) 防冲突(SEL1 = 93H,SEL2 = 95H,SEL3 = 97H)

命令组成:选择代码SEL(1byte) + 有效位数目NVB(1byte)+ 根据NVB的值,UID Cln的0到40个数据位。(只要NVB没有规定40个有效位,若PICC保持在READY状态中,该命令就被称为ANTICOLLISON命令)(如果PICC已发送了完整的UID,则它从READY状态转换到ACTIVE状态并在其SAK-响应中指出UID完整。否则,PICC保持在READY状态并且该PCD应该递归串联级别启动一个新的防冲突环。)

(3) 选卡(SEL1 = 93H,SEL2 = 95H,SEL3 = 97H)

命令组成:选择代码SEL(1byte)+ 有效数目NVB(1byte)+ UID CLn 40个数据位(NVB = 70H)+ CRC_A
(ANTICOLLISON命令相似,在UID CLn完整时,添加CRC_A,称为SELECT命令)

(4) 三轮认证

选卡后,读写器指定后续读写的存储器位置,并用相应密钥进行三轮认证。认证成功后,所有的存储器操作都是加密的。

(5) 业务操作

密钥修改
访问权限修改
读写块数据

(6) 停止

PCD发出HALT命令,使PICC进入HALT状态。

附:防冲突技术

正常情况下,读卡器在某一时刻只能对磁场中的一张射频卡进行读写操作,但是当多张卡片同时进入读卡器的射频场时,读卡器需要选出唯一一张卡片进行读写操作,这就是防冲突。
常见的非接触式卡片中放冲突机制主要有以下三种:面向比特的放冲突机制(ISO 14443a使用)、面向时隙的防冲突机制(ISO 14443b使用)、位与时隙相结合的放冲突机制(ISO 14693使用)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IC卡片使用基础 的相关文章

  • 机器学习之支持向量机: Support Vector Machines (SVM)

    机器学习之支持向量机 Support Vector Machines SVM 欢迎访问人工智能研究网 课程中心 网址是 http i youku com studyai 本篇博客介绍机器学习算法之一的支持向量机算法 理解支持向量机 Unde
  • 蓝桥杯:优秀的拆分

    蓝桥杯 优秀的拆分https www lanqiao cn problems 801 learning 目录 题目描述 输入描述 输出描述 输入输出样例 输入 输出 输入 输出 题目分析 位运算 AC代码 Java 题目描述 一般来说 一个
  • CSS font-family 中的苹方字体

    苹方提供了六个字重 font family 定义如下 苹方 简 常规体 font family PingFangSC Regular sans serif 苹方 简 极细体 font family PingFangSC Ultralight
  • 【Pytorch】六行代码实现:特征图提取与特征图可视化

    前言 之前记录过特征图的可视化 Pytorch实现特征图可视化 当时是利用IntermediateLayerGetter 实现的 但是有很大缺陷 只能获取到一级的子模块的特征图输出 无法获取内部二级子模块的输出 今天补充另一种Pytorch
  • 微信小程序API——向服务器发送请求

    在微信小程序中 我们可以通过微信的API与服务器进行数据传递 接下来我会详细介绍一下wx request的用法 首先给出前端代码 我们定义一个按钮 绑定点击事件 用于给服务器发送请求 当服务器返回数据后 通过wx for循环出数组中的数据
  • oracle如修改表字段的类型(表中有数据)

    如何在数据表有数据的情况下 修改字段类型 看到如何修改表字段类型 我想大多数人都觉得直接用修改语句 ALTER TABLE 表名 MODIFY 列名 类型 如果是修改多个字段就在后面继续 modify ALTER TABLE 表名 MODI
  • Reactive的方式访问Redis

    前言 本文主要大概介绍一下响应式 反应式编程方式访问 redis 不能解决很多生产问题 只是帮助大家对响应式编程有一个认识 本文是以Reactive 对方式访问 Redis 当然也可以访问mongodb 以及部分关系型数据库 例如 Post
  • Channel的定义、写入、读取、关闭与遍历

    目录 1 Channel基础 为什么要引入Channel Channel简介 channel的定义 声明 channel的数据类型 引用类型 向channel中写入数据 从channel中读取数据 2 channel的遍历与关闭 chann
  • 51单片机按键控制数码管0~9_基于proteus的51单片机开发实例24-矩阵键盘(行列式键盘)...

    1 基于proteus的51单片机开发实例24 矩阵键盘 1 1 实验目的 图1 矩阵键盘电路 本实例我们来学习矩阵键盘 行列式键盘 的电路设计 编程实现 目的是通过较少的I O口来识别多个按键 1 2 设计思路 我们在前面已经学习过独立按
  • Maya_to_Unity工作流程

    注意事项 1 maya的place2Dtexture不起作用 只能使用pbs节点的uv调整 只能调整scale offect 所以贴图的rotate只能使用uv工具进行调整 2 Unity项目第一步将色彩空间设置为liner 3 灯光材质与
  • Keil中如何生成bin文件

    一般借助fromelf工具 安装好Keil后默认会在安装目录中找到fromelf工具 一般在windows平台很难像Linux平台一样使用命令的方式启动格式转换 但是类似IAR 或Keil等带编译器的IDE 都会有编译选项 即编译器或编译后
  • 秒杀详解!!秒杀竟有这些问题?再有人问秒杀,把这篇文章丢给他!!!

    什么是秒杀 seckill seckill是一个老生常谈的场景 它一般出现在电商系统中 在某些特定的节日 限定特定商品数量以超低折扣进行促销引流 按照秒杀的特性 特价商品一般在一两秒内被抢光 剩下的人只会出现售罄页面 这一两秒会出现一个瞬间
  • shadow文件中密码的加密方式

    shadow文件中密码的加密方式 1 查看shadow文件的内容 cat etc shadow 可以得到shadow文件的内容 限于篇幅 我们举例说明 root 1 Bg1H 4mz X89TqH7tpi9dX1B9j5YsF 14838
  • GANSS ALT71D键盘使用说明

    Ganss ALT71D键盘使用说明 两个月之前入手了这款双模键盘 到现在基本只使用蓝牙连接了 数据线太多了 太乱了 用了两个月之后有了一点经验 记录在这里 首先高斯键盘是有官网的 输入www ganss cn就可以看到两把104键的键盘了
  • 技术博客笔记大汇总

    hello 小伙伴们大家好 今天给小伙伴们推荐的开源项目是 YCBlogs 这个开源项目整合博客笔记等资料信息 15年10月到至今 包括Java基础及深入知识点 Android技术博客 Python Go学习笔记等等 还包括平时开发中遇到的
  • 高性能MySQL学习笔记(1) —— MySQL架构

    MySQL架构 1 MySQL逻辑架构 这里分为三层 1 连接层 连接与线程处理 这一层并不是MySQL独有 一般的基于C S架构的都有类似组件 比如连接处理 授权认证 安全等 2 SQL处理层 也叫MySQL服务器层 包括缓存查询 解析器
  • python——pip 安装出现ERROR: Exception: Traceback (most recent call last):的问题

    用pip安装东西 总会提示 当我按照指示输入 python m pip install upgrade pip 命令时 用100次pip 99次会报下面的错误之前看了很多前人的办法 有说是因为网络不好 建议多次暴力尝试的 还有建议说使用ea
  • AI时代你需要知道的:知识图谱技术原理(必读)

    知识图谱是什么 知识图谱最早由谷歌发布 为了提升搜索引擎返回答案的质量以及用户查询的效率 在知识图谱辅助下 搜索引擎可以洞察到用户查询背后的一个语义信息 然后返回更为精准结构化的信息 从而更大可能的去满足用户的一个查询需求 当我们进行搜索时
  • mysql集群

    3 mysql集群 3 1 企业中常用的数据库解决方案 3 2 mysql常见的几种集群方式 3 2 1 MYSQl MMM Master Master Replication Manager for MySQL MySQL MMM 是 M
  • idea debug到一半停止_使用IDEA的Debug调试功能,查看程序的运行过程

    Debug追踪 使用IDEA的断点调试功能 查看程序的运行过程 知乎视频 www zhihu com 1 在有效代码行 点击行号右边的空白区域 设置断点 程序执行到断点将停止 我们可以手动来运行程序 2 点击Debug运行模式 3 程序停止

随机推荐

  • C语言printf打印的奥秘

    基础补充 想完全掌握C语言的 printf 函数 你就得明白C语言中的基本类型及其所占字节数 位 字节 字的概念大家自己百度了解 下面我只给其关系 8位 1字节 2字节 1字 代码示例 作为一个刚入门的小白 我们玩的数据都是十分小的 一般不
  • kubernetes最佳实践(三) - kubedns部署

    1 服务发现 kubernetes 提供了 service 的概念可以通过 VIP 访问 pod 提供的服务 但是在使用的时候还有一个问题 怎么知道某个应用的 VIP 比如我们有两个应用 一个 app 一个 是 db 每个应用使用 rc 进
  • Spring boot的配置文件中属性值有特殊符号,比如@的怎么解决

    用双引号将值引起来就可以识别 例子
  • 【Zabbix实战之运维篇】Zabbix监控模板的配置管理

    Zabbix实战之运维篇 Zabbix监控模板的配置管理 一 检查Zabbix平台的状态 1 检查Zabbix各组件容器状态 2 检查Zabbix的web页面 二 查看系统的默认模板信息 1 查看系统的所有监控模板 2 搜索某个监控模板 3
  • springCloud-系统学习3- 创建微服务工程2

    2 11 Feign应用 是对下面代码的优化 自动根据参数拼接http请求地址 2 11 1 操作 效果 2 12 Feign负载均衡及熔断 Feign集成了ribbon配置项和Hystrix熔断的Fallback配置项 可以使用Feign
  • 基于ARM编译安装docker-harbor

    基于ARM编译安装docker harbor 一 编译内核 此举是为了保证redis镜像可以正常启动 1 安装依赖 yum y install gcc bc gcc c ncurses ncurses devel cmake elfutil
  • Python3 类型转换

    INT 支持转换为INT类型的 仅有 float str bytes 其他类型均不支持 float gt int 会去掉小数点及后面的数值 仅保留整数部分 int 12 94 12 str gt int 如果字符串中有数字 0 9 和正负号
  • 将yyyy-MM-dd hh:mm:ss转化为yyyy-MM-dd

    Date currentTime new Date SimpleDateFormat formatter new SimpleDateFormat yyyy MM dd Date strtodate String datas try str
  • Java异常和处理机制

    棒棒有言 追逐梦想的过程就像是一个人在走一条黑暗 幽深而又漫长的隧道 多少次跌倒又爬起 经历了多少个暗无天日的黑夜与白天 一路上沉淀着难以计数的汗水与泪水 不断地自我暗示 只要自己坚持 只要勇敢地一向往前走 就必须能找到出口 必须会看到光明
  • 读书笔记 摘自:《思维导图攻略:快速上手与落地实践》

    思维导图攻略 快速上手与落地实践 王健文 出版 2019 01 01 7 3万字 内容提要 无落地 不导图 思维导图的学习并不在于思维导图的绘制本身 而是在于实际应用和思维提升 第一章 精英人士自我提升的思维利器 第一节 提升大脑学习力的秘
  • 广州华锐互动:利用VR复原文化遗址,沉浸式体验历史文物古迹的魅力

    在过去的几十年里 科技发展飞速 为我们打开了无数新的视角和可能性 其中 虚拟现实 Virtual Reality 简称VR 技术的崭新应用 为我们提供了一种全新的 近乎身临其境的体验历史的方式 本文将重点探讨VR技术在复原历史古迹方面的应用
  • How to use tar command to complete file compression and decompression in Ubuntu

    TAR 1 GNU TAR Manual TAR 1 NAME tar an archiving utility SYNOPSIS Traditional usage tar A
  • beam search的例子

    看了一下网上对beam search的讲解 感觉都说的太杂了 我试图用一个最简单的例子来帮助读者理解 见下图 假设我有一个模型 能够根据当前词输出下一个词的概率分布 最后依次这样就能生成一大串文本 以上面的图为例 The 的下一个词的最大概
  • Spring StateMachine使用笔记

    Spring StateMachine使用笔记 配置状态机 状态 分层状态 withStates 配置状态 states状态列表 可以使用多个withStates进行parent分层 配置区域 当相同的分层状态机具有多组状态时 每个都具有初
  • 系统移植开发阶段部署

    开发阶段部署阶段 uboot镜像 ubootpak bin flash SD linux内核镜像 uImage tftp下载 根文件系统 rootfs nfs挂载 本文操作需要用到uboot命令进行镜像搬移和根文件系统挂载 uboot中常用
  • EPS学习笔记3----------常用地物采集方法(房屋,斜坡,台阶)

    1 三维模型中房屋绘制方法 面状地物 五点房 不会自动弹出房屋属性录入窗口 任意绘制法 绘制结束弹出房屋属性录入窗口 多点法 1 首先在房屋某一面用鼠标左键选择一点 2 鼠标移到房屋屋檐处 利用shift A将前一节点高程移到屋檐高程 3
  • 前端开发常见面试题第三篇(Vue和React)

    文章目录 1 Vue中直接获取组件内的DOM元素或子组件实例 2 生命周期 3 双向绑定原理 4 v if和v show的区别 5 Vue导航钩子 6 路由跳转的方式 7 vuex常用的是什么 怎么使用 8 父子组件之间通信 9 跨域处理
  • Java排序算法:选择排序

    Java排序算法 选择排序 选择排序它的主要思想是 在未排序的数组中选择最小的元素 然后将其放置在数组的起始位置 再在剩余的未排序数组中选择最小元素 并将其放置在已排序部分的末尾 重复此过程 直到整个数组排序完成 选择排序的步骤如下 1 从
  • 15款业界公认的最佳视频处理软件

    因为需要购买昂贵的视频处理软件和高性能图形计算机 所以视频处理是一项比较耗费金钱的技术活 正是由于这样 一部分人选择使用性能较好的免费在线编辑软件 无需太多视频处理知识便可在浏览器中剪切和编辑视频 然而 当我们无法连接网络或网络很慢的时候
  • IC卡片使用基础

    一 卡片基本概念 集成电路卡 即日常生活中常使用的卡片 可以根据读写特性分为两类 ID卡和IC卡 ID卡 全称身份识别卡 是一种不可写入的感应卡 含固定编号 卡内除了卡号外 无任何保密功能 其 卡号 是公开 裸漏的 IC卡 带有存储器 又称