为何智能卡成功响应选用‘90 00’状态字?
为什么ISO 7816-3选择
90 00作为智能卡成功响应的状态字? ISO 7816-3(带触点的卡——电气接口和传输协议)规定,响应值90 00代表“处理正常完成”。这和编程语言里用返回值0表示成功、程序正常终止的惯例不一样,想知道选用90 00作为智能卡成功响应状态字的原因是什么?
核心原因解析
- 双字节状态字的结构设计:ISO 7816的状态字采用双字节结构,第一个字节(
90)是「情况字节」,用来划分状态大类,90明确属于“正常完成”的类别;第二个字节(00)是「参考字节」,用于补充具体信息,00代表无额外补充的基础成功场景。这种结构能承载更多状态细分,远优于单字节返回值的局限性。 - 硬件与通信的可靠性考量:早期智能卡和终端设备的通信硬件性能有限,
90作为高字节,在电气信号传输中更容易与错误状态的低字节(如6X开头的错误码)区分,降低终端识别状态时的误判概率。 - 预留扩展空间:若采用
00 00作为成功响应,会压缩错误状态的编码空间。而90开头的编码段专门留给正常完成场景,后续可通过修改第二个字节扩展不同的成功细分情况(比如操作完成但附带轻微提示),90 00则作为最基础的无警告成功基准。 - 与错误码体系的清晰划分:ISO 7816的错误状态字普遍以
6X开头(例如69 82代表权限不足,6A 80代表参数错误),90开头的成功状态能和错误码形成明确的类别分界,终端设备可以快速判断操作结果,简化逻辑判断流程。
内容的提问来源于stack exchange,提问作者VSB
相关产品推荐
相关产品推荐

