🔍 APDU状态码速查(SW1 SW2)
收录 ISO7816-4 完整 APDU状态码,支持按 SW1 SW2 搜索、按类别筛选。输入 9000、6A82、61XX、63CX 即可快速找到含义。智能卡开发工程师每日调试必备。
🔥 高频搜索状态码
9000 成功 6A82 文件未找到 61XX 数据待取 6CXX Le错误 63CX PIN错误 69XX 安全/权限 6D00 不支持INS 6E00 不支持CLA 67XX 长度错误 6B00 偏移错误| SW1 SW2 | 分类 | 含义说明 | 常见场景/解决方案 |
|---|---|---|---|
| 90 00 | 成功 | 命令成功完成 | 正常返回,无错误 |
| 61 XX | 数据就绪 | 命令已处理,有 XX 字节响应数据可获取。SW2 指示可用数据长度 | T=0 协议下,使用 GET RESPONSE (INS=C0) 命令取回数据。T=1 协议不会返回此状态 |
| 62 00 | 警告 | 警告:无信息给定。状态标志位非易失性存储器已变化 | 非易失性存储器状态发生变化,但命令仍执行成功 |
| 62 81 | 警告 | 警告:返回数据可能已损坏。部分数据可能不完整 | 检查文件完整性,重试读取 |
| 62 82 | 警告 | 警告:在达到 Le 字节前文件已结束 | 读取超出文件实际范围的偏移量。检查文件大小,减小偏移或 Le |
| 62 83 | 警告 | 选中的文件/记录已被停用(Deactivated) | 文件处于非活跃状态,需先激活文件 |
| 62 84 | 警告 | FCI 格式不符合 ISO7816-4 标准 | 卡片返回的 FCI 模板格式异常,检查卡片个人化数据 |
| 62 85 | 警告 | 没有更多信息 | 所有可用数据已返回 |
| 63 00 | 警告 | 认证失败。验证未通过 | PIN 或口令验证失败 |
| 63 CX | 警告 | 验证失败,剩余 X 次重试机会。X=0 时计数器已耗尽,PIN 已锁定 | 提示用户还剩几次机会;X=0 时需使用 PUK (RESET RETRY COUNTER INS=2C) 解锁 |
| 64 00 | 错误 | 执行错误:状态标志位非易失性存储器变化 | EEPROM/Flash 写入状态异常 |
| 65 00 | 错误 | 执行错误:状态标志位变化 | 存储器状态不一致 |
| 65 81 | 错误 | 存储器错误。EEPROM/Flash 写入操作失败 | 卡片存储单元损坏或寿命耗尽,卡片可能需更换 |
| 66 00 | 错误 | 安全环境相关错误 | 安全检查失败(保留状态字,较少使用) |
| 67 00 | 错误 | 长度错误(Lc/Le 不正确) | 命令数据长度字段与实际数据不匹配。检查 Lc 和 Data 字段长度是否一致 |
| 68 00 | 错误 | CLA 不支持的功能。请求的逻辑通道不存在或不被支持 | 检查 CLA 字节是否正确,确认卡片是否支持逻辑通道 |
| 68 81 | 错误 | 不支持逻辑通道 | 卡片不支持 MANAGE CHANNEL 命令 |
| 68 82 | 错误 | 不支持安全消息(SM) | CLA 中安全消息位被置1,但卡片不支持 SM |
| 69 00 | 错误 | 命令不被允许 | 当前状态下不允许执行此命令 |
| 69 81 | 错误 | 命令与文件结构不兼容 | 用 READ BINARY 尝试读取记录文件,或反之。检查文件类型,使用匹配的读写命令 |
| 69 82 | 错误 | 安全状态不满足 | 未执行 VERIFY(PIN验证)或未通过认证。先执行 PIN 验证或 EXTERNAL AUTHENTICATE |
| 69 83 | 错误 | 认证方法被阻塞(已锁定) | PIN 或密钥已锁定,需使用 PUK 或更高权限密钥解锁 |
| 69 84 | 错误 | 引用的数据(密钥/PIN)无效 | 引用的密钥引用号或 PIN ID 不存在 |
| 69 85 | 错误 | 使用条件不满足 | 时间段限制、次数限制、金额限制等条件未满足 |
| 69 86 | 错误 | 命令不允许(无当前 EF 被选中) | 需先执行 SELECT 命令选择一个文件 |
| 69 87 | 错误 | 期望的 SM 数据对象缺失 | 安全消息中缺少必需的数据对象 |
| 69 88 | 错误 | SM 数据对象不正确 | 安全消息数据对象格式或内容错误 |
| 6A 00 | 错误 | P1/P2 参数错误(未指定) | 检查命令的 P1 和 P2 参数是否正确 |
| 6A 80 | 错误 | 数据字段中的参数不正确 | 命令数据体中包含无效值 |
| 6A 81 | 错误 | 功能不支持。卡片不支持此 INS 指令或此操作 | 确认卡片是否实现了该命令。检查应用是否支持此功能 |
| 6A 82 | 错误 | 文件未找到。指定的 FID(文件ID)或 AID(应用ID)不存在 | 检查 SELECT 命令中的文件ID或AID是否正确。这是最常见的调试错误之一 |
| 6A 83 | 错误 | 记录未找到。指定的记录号超出范围 | 检查 READ RECORD 的 P1 记录号是否有效 |
| 6A 84 | 错误 | 存储器空间不足。文件已满或无足够空间 | 检查文件剩余空间,删除不必要的数据或扩容 |
| 6A 85 | 错误 | Lc 与 TLV 结构不一致 | TLV 数据长度与实际不匹配 |
| 6A 86 | 错误 | P1/P2 参数不正确 | P1 或 P2 参数值不在有效范围内 |
| 6A 87 | 错误 | Lc 与 P1/P2 不一致 | 数据长度与命令参数不匹配 |
| 6A 88 | 错误 | 引用的数据(密钥/证书等)未找到 | 安全环境引用了一个不存在的密钥或证书 |
| 6B 00 | 错误 | 参数 P1/P2 错误:偏移超出 EF 范围 | READ BINARY / UPDATE BINARY 的偏移量超出文件长度。减小偏移量或检查文件大小 |
| 6C XX | Le提示 | Le 长度错误:正确的 Le = XX。SW2 指示正确的期望响应长度 | 终端应使用 SW2 的值作为新的 Le 重新发送命令。常见于 SELECT 和 READ BINARY |
| 6D 00 | 错误 | 不支持的 INS 指令代码。卡片不识别此命令字节 | 确认 INS 代码是否正确;检查是否用错了指令集版本 |
| 6E 00 | 错误 | 不支持的 CLA 类别。CLA 字节不被卡片接受 | 检查 CLA 的 bit8-7 是否合法,是否误用了逻辑通道号 |
| 6F 00 | 错误 | 内部异常/检查错误。卡片内部发生了未知错误 | 卡片内部状态异常(如安全芯片检测到攻击)。尝试复位卡片(冷复位),若持续出现则卡片可能已损坏 |
| 6F XX | 错误 | 内部异常(厂商自定义) | SW2 为厂商自定义错误码,参考卡片规格书 |
| 92 00 | 错误 | UPDATE 操作被拒绝(GP 和某些卡 OS 使用) | 当前安全级别不足以执行更新操作 |
| 94 00 | 错误 | 没有选择 EF(部分卡 OS 使用) | 需先 SELECT 目标 EF |
| 98 00 | 错误 | SELECT 失败(部分卡 OS 使用) | 文件/AID 选择失败 |