You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ACR1252与pyscard修改预编码Mifare 4K卡扇区尾块返回错误99

Mifare 4K卡写入尾块返回错误码99原因分析

核心原因1:写入的访问位值不符合编码规则

Mifare Classic系列卡的3字节访问位有严格的编码约束,3个存储字节中同时包含权限位的原值和取反校验值,只有满足对应映射关系的数值才会被卡片识别为合法值,非法值会直接被卡片拒绝写入。
你当前代码中直接写入的0x78 0x77 0x88不满足官方编码的对应规则,属于无效访问位值,这是写入失败的最常见原因。你需要先根据期望的各块访问权限,按照Mifare Classic官方的访问位编码规则计算出合法的3字节存储值后再执行写入。

核心原因2:认证密钥的权限不足

供应商预写的访问位0xFF 0x07 0x80对应的扇区尾块(扇区第3块)访问权限如下:

  • KeyA仅支持读取,不可修改
  • 访问位、KeyB仅支持KeyB认证通过后写入,哪怕KeyA认证通过也没有写入权限

你代码中认证指令的倒数第二个参数为0x61,对应ACR1252读卡器的KeyB认证逻辑,如果实际参数配置错误用了KeyB以外的密钥认证,就会因为权限不足被卡片拒绝。

补充说明

ACR1252读卡器返回的错误码99是读卡器自定义错误码,含义为「卡片主动拒绝本次操作,无更具体的错误信息返回」,和上述两种场景的表现完全匹配。
原厂空白卡的默认访问位配置支持KeyA、KeyB写入尾块,所以相同操作不会触发错误。

内容的提问来源于stack exchange,提问作者Ajax

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 08:30:04