---
title: 读取 NFC 卡片
slug: zero/zh/nfc/read
description: 了解如何读取和模拟 NFC 卡片，以及受支持的 NFC 卡片列表
image: https://archbee-image-uploads.s3.amazonaws.com/3StCFqarJkJQZV-7N79yY/Chq4_V_iywA5ZEN7ZmH0F_nfc-read-zh.png
docTags: 
createdAt: 2022-08-08T12:24:07.000Z
---

![](https://api.archbee.com/api/optimize/3GUDYkC5JgUWgo6RW8piO-u1LYs23GvHeBO8r7-18au-20241025-091938.png)

Flipper Zero 可以读取、保存和模拟 NFC 卡片。NFC 卡片是一种工作在 13.56 MHz 的应答器，带有唯一编号（UID）和一部分可重写的存储空间用于保存数据。根据卡片类型的不同，存储空间可以按扇区、页面、应用等方式划分。当靠近读卡器时，NFC 卡片会发送被请求的数据。

本页将介绍如何读取和模拟 NFC 卡片，并列出受支持的 NFC 卡片。

***

# 如何读取 NFC 卡片

读取过程是自动的，无需用户手动配置。

要读取并保存 NFC 卡片的数据，请执行以下操作：

:::::WorkflowBlock
:::WorkflowBlockItem
转到 **Main Menu** **→** **NFC**。
:::

::::WorkflowBlockItem
按 **Read**，然后将卡片贴近 Flipper Zero 的背面。

![](https://api.archbee.com/api/optimize/3GUDYkC5JgUWgo6RW8piO-gnszUyotO_ud3xoQys1F9-20241025-092103.png)

:::Iframe{iframeHeight="0" code="<div class=&#x22;warning flipper-callout&#x22;>&#xA;    <div class=&#x22;callout-header&#x22;></div>&#xA;    读取过程中请勿移动卡片。读取过程可能需要几分钟。 &#xA;</div>"}

:::
::::

:::WorkflowBlockItem
读取完成后，转到 **More** **→** **Save**。
:::

:::WorkflowBlockItem
为读取到的卡片命名，然后按 **Save**。
:::
:::::

### 读取卡片中的内容

对于部分卡片，Flipper Zero 可以将数据以可读的形式解析并显示，例如卡片有效期、余额或剩余次数。这一功能得益于社区贡献的解析器。你可以在 [Flipper Zero GitHub 仓库](https://github.com/flipperdevices/flipperzero-firmware/tree/dev/applications/main/nfc/plugins/supported_cards)中查看全部可用解析器。

![](https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/AQ3NAORc_8qJTRMf9PUWl_image.png "用 Flipper Zero 查看卡片中的内容")

### 如果读取失败

- 该卡片可能使用的是 125 kHz RFID 技术。 → 请使用 [125 kHz RFID 应用](https://docs.flipper.net/zero/zh/rfid)读取该卡片。
- 该卡片可能把两种不同类型的 NFC 卡片合二为一。 → [请预先选择你想读取的卡片类型](https://docs.flipper.net/zero/zh/nfc/read#b6VWz)。

***

## A 类 NFC 卡片

### MIFARE Classic®

Flipper Zero 可以读取 MIFARE Classic 1K、MIFARE Classic 4K 和 MIFARE Classic Mini 卡片并保存数据。要读取扇区中存储的数据，Flipper Zero 需要找到全部密钥：MIFARE Classic 1K 为 16 个扇区的 32 个密钥，MIFARE Classic 4K 为 40 个扇区的 80 个密钥，MIFARE Classic Mini 为 5 个扇区的 10 个密钥。为此，Flipper Zero 会使用 **System dictionary** 中的密钥。

你可以通过 **Main Menu** **→** **NFC → Extra Actions → MIFARE Classic Keys** 手动把自己的密钥添加到 **User dictionary** 中。

:::Iframe{iframeHeight="0" code="<div class=&#x22;info flipper-callout&#x22;>&#xA;    <div class=&#x22;callout-header&#x22;>如果卡片的部分扇区没有被读取怎么办？</div>&#xA;    你可以尝试从卡片或读卡器中提取 nonce，再计算出缺失的密钥，从而获取未读扇区的密钥。<a href=&#x22;https://docs.flipper.net/zero/zh/nfc/mfkey32&#x22; onclick=&#x22;next.router.push('https://docs.flipper.net/zero/zh/nfc/mfkey32')&#x22;><u>了解更多</u>。</div>"}

:::

::Image[]{src="https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/xJWjW8R5xrgLLhP8RCwme_mifare-classic.jpg" size="98" width="3496" height="1144" caption="按扇区组织的已捕获数据" position="center" showCaption="true" darkWidth="3496" darkHeight="1144"}

:::Iframe{code="<div class=&#x22;info flipper-callout&#x22;>&#xA;    <div class=&#x22;callout-header&#x22;></div>&#xA;    对于 MIFARE Classic 卡片，Flipper Zero 只模拟已解锁的扇区。</div>" iframeHeight="0"}

:::

Flipper Zero 读取 MIFARE Classic 卡片后，原始数据会存入内存。当你通过 [Flipper Mobile App](https://docs.flipper.net/zero/zh/mobile-app) 或通过 Flipper Zero [模拟](https://docs.flipper.net/zero/zh/nfc/read#nfc-1)修改数据时，设备会生成一个新的影子文件来表示新的数据状态。这会导致 Flipper Zero 上的实际状态与实体卡片不同步。要让实体卡片与 Flipper Zero 上的数据状态同步，请使用 **Write To Initial Card** 功能。

同样，实体卡片的数据在与读卡器交互后也可能发生变化，导致数据状态不同步。要同步状态，请使用 **Update From Initial Card** 功能。

你可以使用 **Restore to original** 功能放弃 Flipper Zero 上的更改，此时 Flipper Zero 会删除影子文件。

![](https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/f0oKW-lUMaRsc1jcpKTv__nfc-mifare-menu.jpg "你可以在 Flipper Zero 与实体卡片之间同步数据状态")

***

### MIFARE Ultralight® & NTAG®

对于 MIFARE Ultralight 和 NTAG 卡片，Flipper Zero 可以读取并保存开放页面中的数据。

![](https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/WN4wSvaNIYEWDpX7dvP_W_ultralight-screen.jpg "按页面组织的已捕获数据")

部分 MIFARE Ultralight 和 NTAG 卡片的页面受密码保护。例如，MIFARE Ultralight C 卡片使用 16 字节密码保护数据。Flipper Zero 内置了 MIFARE Ultralight C 密码字典，可用于解锁页面并读取其中的数据。你可以通过 **Main Menu → NFC → Extra Actions → MIFARE Ultralight C Keys** 手动把自己的密钥添加到字典中。

MIFARE Ultralight EV1 和 NTAG21x 系列卡片使用 4 字节密码保护。如果你知道密码，可以[手动输入](https://docs.flipper.net/zero/zh/nfc/unlock-with-password#utaHH)，用 Flipper Zero 读取数据。

:::Iframe{iframeHeight="0" code="<div class=&#x22;info flipper-callout&#x22;>&#xA;    <div class=&#x22;callout-header&#x22;></div>&#xA;    对于 MIFARE Ultralight 和 NTAG 卡片，Flipper Zero 只模拟已读取的页面。</div>"}

:::

Flipper Zero 可以把已保存的 NTAG 数据写入另一张同类型的 NTAG 卡片（例如 NTAG 213 写入 NTAG 213）。该功能适用于 NTAG 213、NTAG 215 和 NTAG 216 卡片。源卡片和目标 NTAG 卡片都必须保持默认的 PWD 和 PACK，且 AUTH0 处于禁用状态。此外，两张卡片的静态和动态锁定位都必须为 0，以确保全部用户存储区处于解锁状态。

![](https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/Bxh9df32bkyfWwfAl3y7k_ultralight-menu.jpg "你可以把 NTAG 数据写入其他 NTAG 卡片")

***

### MIFARE® DESFire®

Flipper Zero 可以读取 MIFARE DESFire 卡片并保存数据。这类卡片的存储空间按应用组织，每个应用包含多个文件。Flipper Zero 会读取并保存未受保护的应用和文件数据。

::Image[]{src="https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/wYqPc09SF-LklLZPce5C5_desfire-screen.jpg" size="94" width="3395" height="1177" caption="按应用组织的已捕获数据" position="center" showCaption="true" darkWidth="3395" darkHeight="1177"}

:::Iframe{code="<div class=&#x22;info flipper-callout&#x22;>&#xA;    <div class=&#x22;callout-header&#x22;></div>&#xA;    对于 MIFARE DESFire 卡片，Flipper Zero 只能模拟 UID。</div>" iframeHeight="0"}

:::

***

### 未知卡片

读取未知的 NFC 卡片时，Flipper Zero 只会读取并保存 UID、SAK 和 ATQA。&#x20;

![](https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/KwoZMwupquKSaKbJz9gzP_unknown-iso-tag.jpg "未知 ISO 卡片的已捕获数据")

:::Iframe{code="<div class=&#x22;info flipper-callout&#x22;>&#xA;    <div class=&#x22;callout-header&#x22;></div>&#xA;    对于未知的 NFC 卡片，Flipper Zero 只能模拟 UID。</div>" iframeHeight="0"}

:::

***

## V 类 NFC 卡片

### ICODE® SLIX

Flipper Zero 可以读取并保存 ICODE SLIX、SLIX-2、SLIX-L 和 SLIX-S 标签中存储的数据。这类标签的存储空间按块组织。

![](https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/8msSeLqwH7dkSRUqn-4eH_slix-screen.jpg "按块组织的已捕获数据")

:::Iframe{code="<div class=&#x22;info flipper-callout&#x22;>&#xA;    <div class=&#x22;callout-header&#x22;></div>&#xA;    对于 ICODE SLIX 卡片，Flipper Zero 可以模拟 UID 和块中的数据。&#xA;</div>" iframeHeight="0"}

:::

### 未知卡片

读取未知的 NFC-V 卡片时，Flipper Zero 会读取并保存 UID 以及已读块中的数据。

![](https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/NUr5ZNIPAQCDEKilko7Aj_iso-15693.jpg "未知 NFC-V 卡片的已捕获数据")

:::Iframe{code="<div class=&#x22;info flipper-callout&#x22;>&#xA;    <div class=&#x22;callout-header&#x22;></div>&#xA;    对于未知的 NFC-V 卡片，Flipper Zero 可以模拟 UID 和已读块中的数据。&#xA;</div>" iframeHeight="0"}

:::

***

## F 类 NFC 卡片

### FeliCa™ Lite-S

Flipper Zero 可以读取、保存和模拟 FeliCa Lite-S 卡片，具体可以读取制造 ID（IDm）、制造参数（PMm）以及块中的数据。

![](https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/H5mmFZUKd0oxb8PPpM_oM_felica.jpg)

:::Iframe{iframeHeight="0" code="<div class=&#x22;info flipper-callout&#x22;>&#xA;    <div class=&#x22;callout-header&#x22;></div>&#xA;    如果 Flipper Zero 读取了 28 个块中的 26 个，说明全部数据都已成功读取，这是 FeliCa 卡片读取机制决定的。但如果读取的块少于 26 个，说明部分块被锁定。要访问这些锁定的块，请使用 <b>Unlock</b> 功能并输入厂商提供的 16 位密钥。&#xA;</div>"}

:::

***

## B 类 NFC 卡片

### ST25TB

Flipper Zero 可以读取并保存 ST25TB 卡片，能够捕获 UID 和卡片数据。

支持以下存储结构不同的卡片类型：

- ST25TB512
- ST25TB512-AC
- SRIX512
- ST25TB02K
- ST25TB04K
- SRIX4K

![](https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/9L7LsEHjzeoZEmm6wlKII_srix4k.jpg)

### 其他 B 类 NFC 卡片

对于其他 B 类 NFC 卡片，Flipper Zero 只能读取并显示 UID，无法保存。

![](https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/hGDvpq34yz4H1VDZ082n4_nfc-b.jpg "B 类 NFC 卡片的已捕获数据")

***

## 读取指定类型的卡片

混合卡片把两种类型的 NFC 卡片合二为一。例如，EMV 卡片可能与 MIFARE Classic 卡片组合在一起。这种情况下，你需要按以下步骤指定要读取的卡片类型：

::::WorkflowBlock
:::WorkflowBlockItem
转到 **Main Menu → NFC → Extra Actions → Read Specific Card Type**。
:::

:::WorkflowBlockItem
选择你想读取的卡片类型，然后按 **确认键**%ok%。
:::

:::WorkflowBlockItem
将卡片贴近 Flipper Zero 背面以读取卡片数据。
:::
::::

***

# 模拟 NFC 卡片

根据 NFC 卡片类型和已保存的数据，Flipper Zero 可以模拟整张 NFC 卡片，也可以只模拟 UID。

要模拟已保存的 NFC 卡片，请执行以下操作：

::::WorkflowBlock
:::WorkflowBlockItem
转到 **Main Menu → NFC → Saved**。
:::

:::WorkflowBlockItem
选择卡片，然后按 **Emulate**。

![](https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/_xSh1BW1ElY8PRxghopVn_emulate-type.jpg "在某些情况下，只能模拟 UID")
:::

:::WorkflowBlockItem
将 Flipper Zero 贴近读卡器以传输数据。

![](https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/YVyto0hMEn8sKwC78Kh4V_image.png "模拟 NFC 卡片时，请将 Flipper Zero 贴近读卡器")
:::
::::

:::Iframe{iframeHeight="500" code="<div class=&#x22;info flipper-callout&#x22;>&#xA;    <div class=&#x22;callout-header&#x22;></div>&#xA;    模拟 MIFARE Classic 卡片时，Flipper Zero 会尝试推测读卡器的频率，以便正确调制信号。Flipper Zero 假定场频率恰好为 13.56 MHz。如果实际频率偏差较大，信号将无法被正确调制，从而导致模拟出错。&#xA;</div>"}

:::

***

MIFARE、MIFARE Ultralight、MIFARE Classic、NTAG、DESFire 和 ICODE 是 NXP B.V. 的注册商标。

FeliCa 是索尼公司的商标。
