NTAG 标签
NTAG 标签
这里描述针对 NTAG213。而 NTAG215/216只是容量不同,其它功能都一样。

UID
UID 有 7 bytes。上图中有 9 bytes 的 serial number,其中有 2 bytes 是 check byte。

check byte 0 校验:CT, SN0, SN1, SN2
check byte 1 校验:SN3, SN4, SN5, SN6
static lock byte
lock byte 可以把一些 page 设置成只读。

page 2 里有两个字节的 lock byte,可以控制 page3~page15 是否只读。NTAG210 型号的卡,user memory size 就是 12 个 page。猜想可能这个设计最初就是为了适应这个容量大小的卡。
L 是 locking,负责单个 page 的锁定状态。L 位置 1 后,对应的 page 就变为只读,除非更改 L 位为 0
BL 是 block-locking,可以锁定多个 page
这两个 lock byte 的写操作是 tearing-proof 的。
tearing 现象,卡离开读卡器时,供电突然消失。对 Flash 的写操作会中断,造成 data-tearing 现象。tearing-proof 就是会保证对卡内的这两个字节的写操作是独立完整的。
参考链接:Tearing-proof method for writing data in a nonvolatile memory
dynamic lock bytes
控制序号 10h 及后面的 page 的锁定,就用到了 dynamic lock bytes。
CC
page 3 存了卡容量信息,在生产时固化,符合 NFC Forum Type 2 Tag 规范。其中 4 个字节,byte2 表示容量:

这 4 个字节都是 OTP 的,且按位进行或操作。把某位置 1,不能置 0。
这 4 个字节出厂时都有预置的值,不是 00。
数据区
page 4 以后一片连续的 page 可供用户使用。
出厂时,page 3, page4, page 5 会有预置的值。page 5 以后的内容就不确定了。也许可以根据这里的信息来判断一张卡是否被使用过。
功能配置页
最后 4 个 page 用于一些功能的配置。

MIRROR
MIRROR 功能可以把卡的 UID 和 NFC Counter 以 ASCII 的格式映射到某个 page 开始的区域。

MIRROR_CONF
- 00: 禁止 MIRROR 功能
- 01: 映射 UID
- 10: 映射 NFC Counter
- 11: 映射 UID 和 NFC Counter
MIRROR_PAGE 指定映射到哪个 page
MIRROR_BYTE 指定从 page 内的第几个 byte 开始
AUTH

PROT
- 0:写保护(不允许写)
- 1:读保护+写保护(不允许读和写)
CFGLCK 控制 CFG0, CFG1 这两页是否可写
- 0:配置区可写
- 1:配置区不可写(PWD 和 PACK 除外)
NFC_CNT_EN
- 0: 禁止 NFC 计数器功能
- 1: 开启 NFC 计数器功能
开启之后,每次 power on reset 后第一次读操作时,计数器会增加 1
NFC_CNT_PWD_PROT
- 0: 读 NFC Counter 不需要验证
- 1: 读 NFC Counter 之前需要密码校验通过
AUTHLIM 密码尝试次数。当密码连续错误超过这个值时,就再也无法校验成功了。而在到达这个次数之前如果校验对了密码,则它的计数会清零
PACK 校验密码命令的响应内容
AUTH0 表示需要密码校验访问的起始页。初始值为 FF。比如,AUTH0 为 5,则表示从 page5 开始的页访问都需要校验密码。
NFC counter
开启此功能之后,每次卡 power on reset 之后的第一次读操作,24 bits 的计数器会自增。
计数器增至 FF FF FF 之后就不再变化。 这个数字足够大了。
这个计数器就给了每张卡一个独立变化的变量。
NTAG 标签的更多相关文章
- 【转】安全加密(三):RFID标签防伪为生活开启安全模式
		
本文导读 随着RFID技术的快速发展和RFID电子标签的生产成本不断降低,RFID标签防伪技术的应用也得到了极大的普及,逐步出现在各行各业当中,如交通出行.票务安全.商品防伪等领域. RFID技术简介 ...
 - CGameConfig类
		
#ifndef __GAMECONFIG_H__ #define __GAMECONFIG_H__ #include "GameFrameHead.h" #include &quo ...
 - DedeCMS标签 PHP判断语句写法
		
缩略图标签的判断写法,如果有图片就显示,没图片就显示别的. {dede:field name=litpic runphp='yes'} if(!empty(@me)) { @me="< ...
 - a标签点击跳转失效--IE6、7的奇葩bug
		
一般运用a标签包含img去实现点击图片跳转的功能,这是前端经常要用到的东西. 今天遇到个神奇的bug:如果在img上再包裹一层div,而且div设置了width和height,则图片区域点击时,无任何 ...
 - IE6、7下html标签间存在空白符,导致渲染后占用多余空白位置的原因及解决方法
		
直接上图:原因:该div包含的内容是靠后台进行print操作,输出的.如果没有输出任何内容,浏览器会默认给该空白区域添加空白符.在IE6.7下,浏览器解析渲染时,会认为空白符也是占位置的,默认其具有字 ...
 - 百度MIP页规范详解 —— canonical标签
		
百度MIP的规范要求必须添加强制性标签canonical,不然MIP校验工具会报错: 强制性标签<link rel="/^(canonical)$/"> 缺失或错误 这 ...
 - 【CSS进阶】伪元素的妙用--单标签之美
		
最近在研读 <CSS SECRET>(CSS揭秘)这本大作,对 CSS 有了更深层次的理解,折腾了下面这个项目: CSS3奇思妙想 -- Demo (请用 Chrome 浏览器打开,非常值 ...
 - TODO:Laravel 使用blade标签布局页面
		
TODO:Laravel 使用blade标签布局页面 本文主要介绍Laravel的标签使用,统一布局页面.主要用到到标签有@yield,@ stack,@extends,@section,@stop, ...
 - 最新 去掉 Chrome 新标签页的8个缩略图
		
chrome的新标签页的8个缩略图实在让人不爽,网上找了一些去掉这个略缩图的方法,其中很多已经失效.不过其中一个插件虽然按照原来的方法已经不能用了,但是稍微变通一下仍然是可以用的(本方法于2017.1 ...
 
随机推荐
- mybatis学习(十)——缓存介绍
			
与Hibernate一样,MyBatis 也提供了一级缓存和二级缓存的支持. 1.一级缓存:(本地缓存)SqlSession级别的缓存,默认一直开启的 , 与数据库同一次会话期间的数据会放到本地缓存中 ...
 - [转] Makefile 基础 (10) —— Makefile 后序
			
该篇文章为转载,是对原作者系列文章的总汇加上标注. 支持原创,请移步陈浩大神博客:(最原始版本) http://blog.csdn.net/haoel/article/details/2886 我转自 ...
 - 关于sass和less做自适应网页的区别
			
less 可以这么写 @r: 15rem; body{margin-top:40/@r}; 但是sass这么写会报错 sass应该这么写 $r: 15; body{margin-top:40re ...
 - codeforces 449D DP+容斥
			
Jzzhu and Numbers Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u ...
 - maven打包加入依赖包以及加入本地依赖包的方法
			
Maven引入本地Jar包并打包进War包中 1.概述 在平时的开发中,有一些Jar包因为种种原因,在Maven的中央仓库中没有收录,所以就要使用本地引入的方式加入进来. 2. 拷贝至项目根目录 项目 ...
 - 开始学习es6(一) 搭建个es6的开发环境
			
1.开始学习es6 如果想在浏览器跑es6 需要给es6个环境 因为一直用vue-cli全家桶 这样虽然方便 但如果用es6需要跑起个vue全家桶 于是想到可以用gulp搭建个开发环境 首先需要1. ...
 - Java程序员最常犯的错误盘点之Top 10
			
1. 数组转ArrayList 为了实现把一个数组转换成一个ArrayList,很多Java程序员会使用如下的代码: Arrays.asList确实会返回一个ArrayList对象,但是该类是Arra ...
 - 【Visual Studio】让用VS2012/VS2013编写的程序在XP中顺利运行(转)
			
原文转自 http://blog.csdn.net/asanscape/article/details/38752655 微软为了推销自家平台,默认配置下VS2012和VS2013编写的应用程序只能在 ...
 - NGINX白名单功能,ngx_http_limit_conn_module和ngx_http_limit_req_module值设置多少才合适呀?
			
要根据不同的应用慢慢学习测试? 我现在设置的10左右,看看再说吧... #增加限制规则,如果不能正常访问,则需要调节这两个值 -- #增加ip白名单功能 geo $whiteiplist { defa ...
 - Codeforces 932 B.Recursive Queries-前缀和 (ICM Technex 2018 and Codeforces Round #463 (Div. 1 + Div. 2, combined))
			
B. Recursive Queries time limit per test 2 seconds memory limit per test 256 megabytes input stand ...