ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

NFC模拟校园卡:Mifare Classic读卡、备份与UID门禁整合

2026/9/29 11:18:42 拓冰建站 浏览量
NFC模拟校园卡:Mifare Classic读卡、备份与UID门禁整合 1. 先想清楚NFC模拟校园卡这件事到底在模拟什么折腾校园卡这件事,最初纯粹是被每天兜里揣一堆卡逼出来的——饭卡、宿舍门禁、图书馆闸机、实验室门禁,光是找卡就能在门口站半天。后来发现手里的 Android 手机、带 NFC 的手环都能刷门禁,就动了个念头:能不能把这些卡统一收进一块设备里。真动手之后才发现,这件事远没有想象中简单,读卡、分析数据结构、模拟写入,每一步都有讲究,而 Mac 和 Windows 电脑在这里更多是辅助分析的角色,真正干活的还是 Android 手机和 NFC 手环。这篇文章就把我这一整套流程完整摊开讲,包括工具怎么选、数据怎么看、写不进去怎么排查,以及几个我踩过、但很少有人会提前告诉你的坑。先把范围说清楚:下面所有内容,针对的都是我自己合法持有的卡片,目的是做个人设备整合和数据备份研究。任何涉及他人卡片、未经管理方授权的操作,都不在这次讨论范围里。校园卡本质上是学校发放的管理凭证,你手上那张卡归你使用,但卡片背后的系统不归你管,这个边界必须心里有数。带着这个前提往下看,会更踏实。1.1 校园卡里那颗芯片的工作逻辑绝大多数校园卡是 13.56MHz 的高频卡,遵循ISO/IEC 14443 Type A协议,常见芯片是Mifare Classic(1K 或 4K),少部分学校用了安全性更高的CPU 卡(比如 DESFire、国产 CPU 卡或带金融级加密的卡)。这两类卡的处理思路完全不同,后面会专门讲。Mifare Classic 1K 的结构可以理解成一栋16 层楼、每层 4 个房间的仓库,每个房间(数据块)能存 16 字节。16 个扇区里,前三个块存数据,第四个块是扇区尾块,里面装着两把钥匙(Key A 和 Key B)以及访问控制位。你刷卡时,读卡器先用密钥通过一次握手,验证通过才允许读或写某个扇区。UID(卡的唯一编号)存在第 0 扇区的第 0 块,这是每张卡的身份证号。这里顺手把一个常见混淆点讲开:RFID 和 NFC 不是一回事。RFID 是个大范畴,低频(125kHz)、高频(13.56MHz)、超高频(900MHz)都算;NFC 只是 13.56MHz 高频 RFID 的一个子集,而且它强调双向通信和近场交互。校园卡基本都落在 NFC 能碰的 13.56MHz 频段,所以手机、手环的 NFC 才有机会去聊这张卡。1.2 模拟、备份、读取三件事的区别很多人把复制校园卡一句带过,其实里面有三件性质完全不同的事,分清楚能省掉一大半无谓的折腾。读取是拿设备把卡片里的数据 dump 出来,得到的是一个二进制文件,好比把书的每一页拍了下来。备份是把 dump 文件保存好,换卡或恢复时用得上,本质是数据留存。模拟则是让另一台设备(手机、手环)对外表现得我就是那张卡,这又分两种:一种是只模拟 UID,让对方系统看到同一个卡号就放行;另一种是连扇区数据一起模拟,技术上难度高一大截。绝大多数手机和手环的钱包功能,做的都是第一种——UID 模拟。这就解释了一个高频疑问:明明模拟成功了,为什么刷不开?因为有些门禁系统不只认 UID,还要读某个扇区里的校验数据,UID 对上了但数据对不上,自然被拒。1.3 动手前必须先明确的边界有个前提必须反复强调。校园卡是学校发放的管理凭证,你手头这张卡你可以研究、可以备份,但模拟之后用在哪里、给谁用,是有明确边界的。用自己的卡在自己有权进出的门禁上做设备整合,和拿一张卡去触碰你没权限的区域,是两码事,后者千万别碰。另外,网上偶尔会提到中继这类概念——简单说就是有人把一张卡的信号远程转发到另一处,让远处的读卡器以为卡就在跟前。这属于安全攻防范畴的话题,不是普通用户该研究的方向。它的存在反而提醒我们:单纯依赖近距离的物理贴近来判定身份,本身就有风险。正经的防护思路是双向认证、加密挑战应答,这些是系统设计者要考虑的,我们做个人整合时,守住只碰自己的卡、只在自己有权出入的场景用这条线就够了。2. 设备与工具选型Android、手环、Mac、Windows 怎么分工工欲善其事,选对设备能少走一大半弯路。我手上的几台设备经过几轮测试,最后形成了一个比较稳定的分工:Android 手机当主力读卡器和模拟载体,手环当最终携带的轻量载体,Mac 和 Windows 电脑负责深度分析和交叉验证。为什么这么分,下面逐条说清楚。2.1 Android 手机是最顺手的读卡终端Android 生态在 NFC 这件事上开放度最高,这是它成为主力的根本原因。系统层面对 NFC 的读写权限放得比较开,第三方 App 能直接调用底层接口去读卡片数据,还能模拟卡片对外响应。我常用的几款工具有:MIFARE Classic Tool(简称 MCT,读 Mifare Classic 卡的老牌工具,支持密钥字典、读卡、写卡、dump 文件对比)、NFC Tools(偏通用,识别卡片类型和基础信息很直观)、TagInfo(用来快速判断一张卡到底是什么类型、支持哪些协议)。这几款配合起来,基本能覆盖从这是什么卡到里面存了什么的全过程。Android 还有个隐藏优势:很多国产品牌手机自带的钱包 App 有门卡模拟入口,可以直接把一张实体卡模拟进手机。这个功能的实现原理在 4.1 节细讲,先记住一点——它是 UID 级模拟,不是全数据模拟。2.2 手环适合做最终载体而非读卡器手环的价值在最终携带这一步。你不可能天天掏手机刷门禁(尤其手里拎着东西的时候),但手腕上一直有个环,抬一下就能过闸机,这才是日常最舒服的形态。小米、华为等品牌的 NFC 手环都支持门卡模拟,通常的路径是:先在手机的配套 App 里把实体卡模拟成一张虚拟门卡,再把这