搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
IT小白
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
超赞的AI代码辅助插件,还能帮你发现 bug!
2
原生加密:腾讯云数据安全中台解决方案
3
OpenCV视觉--视频人脸微笑检测(超详细,附带检测资源)_opencv笑脸识别
4
OpenAI 宫斗 2.0:ChatGPT 功臣投靠“死对头”,总裁休长假到年底
5
Redis LFU缓存淘汰算法_redis lfu实现
6
AI2.0:十年之后我们还能做什么
7
力扣刷题(代码回忆录)——回溯算法_回忆录代码
8
《管理学》第六章 领导_管理学第六章思维导图
9
Android studio 无法安装SDK问题解决_android studio 第一次运行 无法下载 sdk
10
android studio下载安装详细教程(JDK安装+环境配置+SDK+工程测试)万字详细版
当前位置:
article
> 正文
Android MIFARE读写器协议详解1_mifare协议
作者:IT小白 | 2024-08-15 20:10:33
赞
踩
mifare协议
M1 主要指标
1:容量为8K位EEPROM
2:分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位
3:每个扇区有独立的一组密码及访问控制
4:每张卡有唯一序列号,为32位
5:具有防冲突机制,支持多卡操作
6:无电源,自带天线,内含加密控制逻辑和通讯逻辑电路
7: 数据保存期为10年,可改写10万次,读无限次
8:工作温度:-20℃~50℃(温度为90%), PET材料封装得M1卡,温度可达100℃。
9:工作频率:13.56MHZ
10:通信速率:106KBPS
11: 读写距离:10mm以内(与读写器有关)
M1 存储结构
Mifare1S50非接触式智能卡片有着16个Sector(扇区);每个Sector包含4个Block(块);每个Block具有16个byte的存储容量。
Sector被定义为Sector0至Sector15;Block被分为Block0至Block3;整个Mifare1S50非接触式智能卡共有64个Block。
Sector0中的Block0记录了该张智能卡的序列号以及生产厂商的标志信息等,这些信息已在卡片出厂时固化,不能更改,因此该Block不能再复用为应用数据块。
每个Sector中的Block3被特别用来存放对该Sector中应用块Block0,1,2及其本身Block3进行数据存取的密码及存取权限。
整个Mifare1S50非接触式智能卡共有16个Block3。根据绝对地址编址,他们可被编为Block3(在Sector0中),Block7(在Sector1中),Block11(在Sector2中),以及Block63(在Sector15中)等。
对于某一Sector中的Block3的绝对地址编址可以由下列公式计算得到:
Block X=(N+1)*4-1 其中:X:绝对地址编址的Block块号
N:Sector扇号,0至15
通常每个扇区的Block0,1,2都存放着非常保密的数据,例如坐公交车/出租车前在公交公司指定地点已购买的车资钱款,智能大厦/智能小区进出时所需的控制信息,
股票交易时持有股票交易智能卡片者必须对已存放在智能卡中的交易密码数据(例如帐户、存款信息、已买进股票数量/品种等等)进行确认,才能得以股票交易等。
数据块可作两种应用:
用作一般的数据保存,可以进行读、写操作。
用作数据值,可以进行初始化值、加值、减值、读值操作。
由于每一个Block3中包含了该扇区的密码字节以及对该扇区中其余Block0,1,2进行数据处理的存取控制权限字节,因此如何操作处理Block3将是很重要的内容。以下将展开对每个扇区的Block3进行研究。
Block3有16个byte组成。前6个字节是密码A(KEYA),KEYA的缺省值可能为“A0A1A2A3A4A5”;
最后6个字节是密码B(KEYB),KEYB的缺省值可能为“B0B1B2B3B4B5”;
中间4个字节是控制字节,缺省值可能为“FFH07H80H69H”;
利用KEYA或KEYB并遵守早已定义在4个控制字节中的存取条件,我们便能对该密码(KEYA或KEYB)所对应的Sector内的应用块Block0,1,2进行数据读/写/更新等操作。
每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。
存取控制为4个字节,共32位,扇区中的每个块(包括数据块和控制块)的存取条件是由密码和存取控制共同决定的,
在存取控制中每个块都有相应的三个控制位,定义如下:
块0: C10 C20 C30
块1: C11 C21 C31
块2: C12 C22 C32
块3: C13 C23 C33
三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如 进行减值操作必须验证KEY A,进行加值操作必须验证KEY B,等等)。三个控制 位在存取控制字节中的位置,以块0为例:
<
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/IT小白/article/detail/985064
推荐阅读
article
Linux
CentOS7.6
搭建
strongswan
VPN
,IOS、
Android
可用_stro...
利用
Linux
CentOS7.6
搭建
strongswan
VPN
,可以直接供IOS、
Android
手机端使用,支持IP...
赞
踩
article
strongswan
搭建
ikev1
for
Android
and
iOS_
strongswan
安...
1.关于
strongswan
的介绍 srongswan 是基于ipsec 的开源 vpn 服务器,目前已经实现了ike...
赞
踩
article
Uni
t
y
We recommend using a newer
Android
Gradle
pl...
c、打开
Android
S
t
udio,File->Se
t
t
ing->Languages&Frameworks->Andr...
赞
踩
article
安装
Android
Studio
2024.1.1.6(Koala
SDK35
)和过程问题解决_a...
记录更新
Android
Studio
版本及适配
Android
V应用配置的一些过程问题。_
android
studio
...
赞
踩
article
Android
Gradle
Plugin
与
Gradle
版本
对应关系...
数据来源: https://developer.android.com/studio/releases/gradle-p...
赞
踩
article
新建项目下
Gradle
sync
报错Plug
in
was not
found
in
any of t...
Plug
in
[
id
''
version
''] was not
found
in
any of the follow...
赞
踩
article
Android
S
t
udio出现闪退_we recommend using
a
newer
a
ndr...
在文件项目的(gr
a
dle.proper
t
ies(Projec
t
))加上
a
ndroid
.suppressUnsuppor...
赞
踩
article
Android
S
t
udio 针对部分导入项目报错的问题
解决方案
_
t
his
android
grad...
本文介绍了在
Android
S
t
udio中遇到导入项目报错时的
解决方案
。问题包括:JDK版本不匹配,需要升级到Java ...
赞
踩
article
Unity Android 升级Gradle 报错 Task :unityLibrary:Build...
commandLineArgs.
add
("
--
tool
-
chain
-
path
=" +
android
.ndkDirect...
赞
踩
article
Android
compileSdkVersion
升级到
33
_
compilesdkversion
...
应用兼容的SDK API最低版本,若手机系统低于minSdkVersion将无法安装;
Android
Studio中写代码...
赞
踩
article
Android
Studio
中使用
uiautomatorviewer
插件...
这个插件拆分出来就是UI Automator Viewer(界面 自动化 查看器),本身是
Android
的UI Auto...
赞
踩
article
Android
Studio
Kotlin
代码和
java
代码相互转化_
android
studio
...
目录 1、
java
转成
kotlin
2、
kotlin
转成
java
1、
java
转成
kotlin
方法1:快捷键:Ctrl...
赞
踩
article
Android Studio中
Java
和
Kotlin
相互转换_
android
studio
kt转j...
Java
代码转
Kotlin
代码打开要转的文件或者代码:快捷键 :Ctrl+Shift+Alt+K或者工具栏 :Code ...
赞
踩
article
深入分析
Android
ContentProvider
(六)_
contentprovider
.b...
ContentProvider
是
Android
中用于数据共享和管理的核心机制,特别适用于跨进程数据访问。在开发中,...
赞
踩
article
Android
ContenProvider
机制完整剖析_
android
contextprovi...
请支持原创~~~相关博文:
android
中的 ContentObserver (一)
android
中的 Conten...
赞
踩
article
深入分析
Android
ContentProvider
(七)_
android
contentpr...
ContentProvider
是
Android
中强大的数据共享和管理机制,通过合理的设计和优化,可以实现高效的数据...
赞
踩
article
Android
ContentProvider
全面解析_
contentprovider
的
uri
...
概述
ContentProvider
为存储和获取数据提供统一的接口,它可以在不同的应用程序之间共享数据,适合IPC通信。C...
赞
踩
article
Android
ContentProvider
原理分析...
目录
ContentProvider
概述 类图 时序图 源码解析 installProvider ContentRes...
赞
踩
article
android
四大组件
--
ContentProvider
详解_
contentprovider
and...
一、
ContentProvider
简介:_
contentprovider
android
:
authorities
cont...
赞
踩
article
Android
hook
微信
apk
实时
获取
微信
聊天消息记录_安卓wechat
hook
...
本文介绍如何通过
Android
hook
技术,实现实时
获取
微信
聊天记录。首先需要对手机进行root,然后使用Root E...
赞
踩
相关标签
linux
ios
android
strongswan
ikev1
unity
游戏引擎
android studio
ide
gradle
android-studio
kotlin
ContentProvider