【问题标题】:Smart Card - Update Record command return 6D 00智能卡 - 更新记录命令返回 6D 00
【发布时间】:2015-12-29 12:56:38
【问题描述】:

我正在为 ISO 7816 卡编写一个智能卡程序,我需要更新一条记录。我用JAVA和javax.smartcardioLibrary编写程序。

我用这个命令选择文件:ins = 0xA4

我可以用这个命令读取记录:cla = 0x80ins = 0xB2p1 = 0x00p2 = 0x00le = 90

读取记录正确并发送给我90 00。 现在我需要更新这条记录。所以我使用这个命令:cla = 0x80ins = 0xDCp1 = 0x00p2 = 0x00,还有一些数据。

但在响应 APDU 时,我收到 6D 00 错误,这意味着“不支持 Ins 值”。

如何正确更新记录?

【问题讨论】:

  • 这是什么卡?为什么您希望记录是可写的(使用此命令/无需身份验证/根本)?
  • @MichaelRoland 这是 ISO 7816-4 智能卡...我有用于读取卡数据的程序的源代码...我想我可以更改命令来更改数据这个文件……但这不是身份验证问题,因为错误是关于 ins 值的……这不可能吗?
  • ISO/IEC 7816-4 是定义智能卡数据结构和一组命令的标准,它不是智能卡产品。智能卡可能遵循 ISO/IEC 7816-4 的部分,但通常不会实现所有命令。具体来说,您的卡支持的命令(CLA=80, INS=B2)是不遵循 ISO/IEC 7816-4 标准的专有命令(CLA=80 表示专有类)。您需要获取有关智能卡芯片(以及可能在其上运行的应用程序)的更多信息,以确定是否(以及如何)修改芯片上的数据结构。
  • 您可以分析 ATR 并猜测智能卡类型。
  • 为了快速检查,您可以尝试 Write Record (INS=0xD2) 而不是 Update Record (INS=0xDC)

标签: java smartcard javacard


【解决方案1】:

我有这个命令:00 DC 01 04。它有效:

00 : class     
DC : INS  
01 : P1 , position of record  
04 : P2 ,  

诚挚的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-19
    • 1970-01-01
    • 2011-09-30
    • 2017-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多