没有匹配「」的内容,换个关键词试试。
i这是什么
ClearFLOW NFC 是一套「产品打标」系统,由三端组成。下面所有功能都按现行逻辑(加密信封 v3 · 价格隔离 · 四个口令)详细说明。可用顶部搜索框快速定位。
📱 手机 App(安卓)
读 / 写 / 锁 NTAG213/215/216 与 Mifare Classic,含底层(计数器/签名/内存/密码保护)与离线解密。能力最全。
🌐 网页 Web-NFC 工具
Chrome/Edge(安卓·HTTPS)即开即用,仅 NDEF 层:读写产品/通用记录、整卡只读锁。/tools/nfc.html
🗄️ 管理后台
数据 / 目录 / 录入 / 模板 / 广播 / 用户 / 配置 / 日志。管理员配置加密口令、目录与权限。/admin
1快速开始
每端一条最短路径,照着做即可完成第一次读 / 写。
📱 App
读:首页「读取标签」→ 标签贴手机背面上半部分,贴卡即读。
写:首页「录入/写入产品信息」→ 选型号、填信息 →「写入标签」→ 贴卡保持不动。
价:录价格需先登录;价格单独加密,离线在读取页输价格密码看价。
🌐 网页工具
用安卓 Chrome 打开 /tools/nfc.html → 登录 →「产品」页填写 →「写入产品标签」→ 贴卡。读取在「读取」页点「开始扫描」。
🗄️ 后台
用管理员账号登录 /admin → 先在「配置」设 4 位 PIN / 主口令 / 价格密码 → 在「目录」维护品牌型号 →「录入」建产品记录。
2三端能力矩阵
浏览器 Web NFC 只开放 NDEF 层;底层操作(原始页、计数器、密码、Mifare 扇区)只有原生 App 能做。
| 能力 | App | 网页工具 | 后台 |
|---|---|---|---|
| 读 / 写 NDEF(文本/网址/MIME/产品) | ✓ | ✓ | — |
| 读 UID | ✓ | ✓ | — |
| 整卡永久只读(makeReadOnly) | ✓ | ✓ | — |
| 分区锁 / 区间锁 / 页面锁 | ✓ | ✕ | — |
| 芯片识别 / 容量计数器 / 原厂签名 | ✓ | ✕ | — |
| 原始内存读写 / 原始指令 / 克隆 | ✓ | ✕ | — |
| NTAG 密码保护(PWD/PACK/AUTH0) | ✓ | ✕ | — |
| Mifare Classic 扇区读写 / 访问位锁 | ✓ | ✕ | — |
| 离线解密(主口令 / 价格密码) | ✓ | ✕ 仅在线 | — |
| 目录 / 用户 / 广播 / 口令配置 | — | — | ✓ |
3标签与芯片
NTAG 系列走 NDEF,三端皆可(网页限 NTAG);Mifare Classic 走扇区/Crypto1,只有 App 能操作。
| 芯片 | 用户容量 | 约可写中文 | 建议用途 |
|---|---|---|---|
| NTAG213 | 144 字节 | 约 130 字符 | CFR 紧凑模式 / 短内容 |
| NTAG215 | 504 字节 | 约 490 字符 | 加密整条记录 |
| NTAG216 | 888 字节 | 约 870 字符 | 加密 + 选择性明文 / 长内容 |
| Mifare Classic 1K | ≈716 字节 NDEF | — | 仅 App · 扇区读写 |
| Mifare Classic 4K | ≈3356 字节 NDEF | — | 仅 App · 扇区读写 |
浏览器无法自动识别芯片型号,网页写入时请按实际芯片在下拉里选容量。App 读取后自动识别,也可在「标签型号参数」手动指定。
4写入三模式
同一条产品记录可用三种方式写到标签,差别在可读性、体积与保密性。价格始终加密上传服务器。
| 模式 | 标签上长什么样 | 体积 | 谁能读懂 | 价格 |
|---|---|---|---|---|
| 🔒 加密整条记录 | 一段密文信封 | +≈83B 信封(v4 瘦身) | 需 4 位 PIN(在线)/ 主口令(离线) | 单独价格密码加密 |
| 标准 CFR(默认紧凑) | 紧凑二进制 | 最小 | 需 ClearFLOW App/工具 + 目录 | 独立密文嵌入标签 |
| 纯文本通用格式 | 可读中文 NDEF 文本 | 较大 | 任何 NFC 工具直接可读 | 不写入标签 |
选择性明文字段(加密模式专有)
🤔 帮我选模式
① 标签需要被「任意 NFC 工具」直接读懂吗?
② 信息需要保密(别人读到是乱码)吗?
5加密与密钥体系
加密模式把整条记录用随机密钥(DEK)加密;DEK 被「服务器密钥(在线)」+「主口令 PBKDF2(离线)」双重包裹。价格被单独用价格密码加密,主口令也解不出。
信封 v3 字节布局
四个口令对照
| 口令 | 用途 | 在哪设 | 能否更改 |
|---|---|---|---|
| 4 位 PIN | 在线解析闸门(服务器解出产品字段) | 后台·配置 | 可随时改(不是解密钥匙) |
| 离线主口令 | 离线解出产品字段(PBKDF2) | 后台·配置 | 不可改(改了旧标签离线解不开) |
| 价格密码 | 解出价格(与主口令隔离) | 后台·配置 | 不可改(改了旧标签看不了价) |
| 删除口令 | 后台删除/清空记录与日志的二次确认 | 后台·配置 | 可随时改(操作闸门,非解密钥匙) |
删除口令未单独设置时,删除回退用主口令;一旦设了删除口令,删除只认它(主口令回归纯解密)。
解密路径
🔑 PRICE_ENC_KEY(服务器环境变量,必须固定)
加密信封的「在线包裹」+ 后台数据库里存的主口令/价格密码/删除口令,都用 PRICE_ENC_KEY 加密。它设一次、永不可改——改了旧标签在线解密与库内口令全失效。未设时回退 SHA-256(JWT_SECRET),那样轮换 JWT_SECRET 也会全失效。
Windows 用 PowerShell:
生成后填入部署平台环境变量,重新部署,后台「配置」会显示 PRICE_ENC_KEY ● 已设置。完整运维见仓库 web/SECURITY.md。
6锁定与密码保护
整卡只读
最简单:整张卡设为只读。三端都支持(网页/App/写入时勾选)。
分区 / 区间 / 页面锁(仅 App)
用静态锁+动态锁把「某页到末尾」或「任意 [起页..止页]」永久设为只读,其余页仍可写。读取页会精确显示锁了哪些页。
NTAG 密码保护(仅 App·底层)
AUTH0=从第几页起需密码;PROT=读+写都要密码 or 仅写;AUTHLIM=失败次数上限;CFGLCK=冻结配置(不可逆)。⚠ 务必牢记密码,忘记且 PROT 开启=该区永久无法读写。
Mifare Classic 扇区锁(仅 App)
改写扇区尾块访问位为只读(0F 07 8F),两把密钥都设为同一值。不可逆。⚠ 写错尾块可能永久锁死扇区。
7高级底层功能(仅 App · NTAG)
对 NTAG 芯片直接发原始指令的工具,面向进阶用户。Mifare Classic 请用专门的扇区读写页。
芯片识别 / GET_VERSION
读出准确型号与容量。
NFC 计数器
读取/开关一次性递增计数器,可做防伪与扫码统计。
原厂签名校验
验证 NXP ECDSA 出厂签名,判断是否真品芯片。
完整内存转储
逐页读取整卡(含 UID/锁/CC/配置页),只读不改,可导出文本。
克隆标签
先读源标签、再写目标标签,整组 NDEF 原样复制(不含 UID/密码/锁定)。
原始指令
直接发 NfcA(ISO 14443-3A)指令:READ/FAST_READ/WRITE/READ_SIG/PWD_AUTH 等,含参考说明。
8模板与目录
模板(产品 / 记录 / 消息)
个人模板存于本机;公共模板由后台发布、下发到 App / 网页。三端可用导出的 JSON/CSV 互通导入。一键「套用」即填表。
目录 + 快捷填入(HINT)
品牌→类型→系列→型号四级级联在目录维护。序列号/尾缀/供电/位置/经销商/最终用户/备注可配 HINT_* 预设,录入时点「快速填入」chip 即可复选累加填入(去重;尾缀用 - 连接、其余用空格)。三端一致,后台·目录维护。
批量导入 CSV
YYYY-MM-DD,价格用元(自动转分加密),每批最多 500 行。9管理后台
八个标签页;多数为 ADMIN 专用,部分 MANAGER 可用。
| 标签页 | 作用 | 谁可用 |
|---|---|---|
| 数据 | 查看产品记录 / 读日志 / 写日志,筛选、导出、(删除口令)删除 | ADMIN |
| 目录 | 维护品牌/型号级联与 HINT 预设,发布目录版本 | ADMIN |
| 录入 | 建产品记录(不写物理标签,存库;价格加密)+ CSV 批量导入 | ADMIN |
| 模板 | 产品 / 记录 / 消息 三类公共模板 | ADMIN/MANAGER |
| 广播 | 编写并下发 App 弹窗消息(info/warning/critical) | ADMIN/MANAGER |
| 用户 | 审批注册、改角色、停用账号 | ADMIN |
| 配置 | 设 4 位 PIN / 主口令 / 价格密码 / 删除口令;看 PRICE_ENC_KEY 状态 | ADMIN |
| 日志 | 审计日志(谁、何时、做了什么、IP) | ADMIN |
角色权限
| 能力 | ADMIN | MANAGER | OPERATOR | 公开 |
|---|---|---|---|---|
| 看价格(点击解密) | ✓ | ✓ | ✕ | ✕ |
| 读写标签 / 用网页工具 | ✓ | ✓ | ✓ | 读公开页 |
| 模板 / 广播 | ✓ | ✓ | ✕ | ✕ |
| 用户 / 目录 / 配置 / 删除 / 日志 | ✓ | ✕ | ✕ | ✕ |
新注册默认 OPERATOR,需管理员审批后才能登录、且无看价权限。
10安全运维 · 备份
重新部署 / 迁移前必须带走
- 数据库(含用户、记录、被 PRICE_ENC_KEY 加密的口令副本)。
- PRICE_ENC_KEY 环境变量,一字不差搬过去。
- 离线主口令 + 价格密码的明文离线备份(纸/密码管理器)——最后的保命符。
4 位 PIN、删除口令丢了可重设,不影响解密。详见仓库 web/SECURITY.md。
11常见问题 / 故障排查
贴卡读不出?
提示超容量、写不下?
标签锁了还想改?
换了服务器,旧标签解不开 / 看不到价?
PRICE_ENC_KEY 没带过去,或主口令/价格密码被改了。把原 PRICE_ENC_KEY 原样配回;产品字段离线用主口令、价格离线用价格密码仍可解(前提是这两个明文没丢)。