Java 如何在智能卡上初始化_更新?

Java 如何在智能卡上初始化_更新?,java,smartcard,globalplatform,Java,Smartcard,Globalplatform,关于智能卡的最新信息,关于如何与智能卡交互的信息在网络上非常分散 我研究了GlobalPlatform API并尝试了它们的示例,但我不明白JavaCard东西最终如何与实际的读卡器绑定并交互。。。因此,我最终使用了javax.smartcardio,我能够获取ATR,然后我发出以下命令尝试获取安全域:00A4 04 0006 A000 01 51 00 我得到的结果是:6F408407A000001510000A535732F06072A864886FC6B0160C060A2A864886F

关于智能卡的最新信息,关于如何与智能卡交互的信息在网络上非常分散

我研究了GlobalPlatform API并尝试了它们的示例,但我不明白
JavaCard
东西最终如何与实际的读卡器绑定并交互。。。因此,我最终使用了
javax.smartcardio
,我能够获取ATR,然后我发出以下命令尝试获取安全域:
00A4 04 0006 A000 01 51 00

我得到的结果是:6F408407A000001510000A535732F06072A864886FC6B0160C060A2A864886FC6B0020160130906072A864886FC6B03640B06092A864886FC6B0403709F6501FF

然后我尝试发送
INITIALIZE\u UPDATE
命令,即
80 50 00 00 08 00 00 00
,之后读卡器闪烁45秒到1分钟,最终返回
SW:9000
,但是响应中没有任何内容

从我所读到的,我应该得到一些多样化的数据等,以便我可以继续初始化卡。。。有人能告诉我我的命令有什么问题吗

如果这里有globalplatformapi专家,他们能告诉我如何使用JavaCard来最终与智能卡读卡器通信,还是不可能?如果可能的话,那就太好了,然后我可以跳过所有的SecureChannel内容,使用GP API中的内容

编辑: 我曾尝试使用GlobalPlatform的工具gp.exe来戳卡以获取基本信息,但仍然失败

gp -info
Reader: ACS ACR39U ICC Reader 0
ATR: 3BD6970081B1FE451F078031C1521118F9
More information about your card:
    http://smartcard-atr.appspot.com/parse?ATR=3BD6970081B1FE451F078031C1521118F9

***** Card info:
Card CPLC:
ICFabricator: 4790
ICType: 6A15
OperatingSystemID: 8231
OperatingSystemReleaseDate: 4176
OperatingSystemReleaseLevel: 0096
ICFabricationDate: 6133
ICSerialNumber: 00001AA0
ICBatchIdentifier: 1424
ICModuleFabricator: 1142
ICModulePackagingDate: 6133
ICCManufacturer: 1143
ICEmbeddingDate: 6133
ICPrePersonalizer: 1144
ICPrePersonalizationEquipmentDate: 6133
ICPrePersonalizationEquipmentID: 130B0000
ICPersonalizer: 0000
ICPersonalizationDate: 0000
ICPersonalizationEquipmentID: 00000000
***** CARD DATA
Unknown tag: 31
***** KEY INFO
VER:1 ID:1 TYPE:AES LEN:32
VER:1 ID:2 TYPE:AES LEN:32
VER:1 ID:3 TYPE:AES LEN:32
然后我试着只列出卡片的内容(对于空白卡片这正常吗?)


感觉您在与智能卡通信的另一个进程(可能是Windows)中遇到了一些问题。你能试着在Windows中禁用“证书传播服务”并看看会发生什么吗?我已经禁用了
证书传播
服务,但它没有改变任何东西,它只提供
9000
和空响应ADU。这太奇怪了,在尝试另一张空白卡(同一批)时,我现在得到了它,但是,我不知道如何解析这个<代码>1424613300001AA0010001037078184156DAD68F2CF8426EBB04AB4A920000E看起来好多了;也许这张卡到底出了什么问题。响应数据的含义可在(公共可用/需要注册)全球平台卡规范中找到。从响应数据中,您的卡使用
scp03
非默认
键集。
gp -l
pro.javacard.gp.GPException: STRICT WARNING: Card cryptogram invalid!
Card: FC3F2DC68462F1DF
Host: 5B54B15BCAD52B52
!!! DO NOT RE-TRY THE SAME COMMAND/KEYS OR YOU MAY BRICK YOUR CARD !!!
        at pro.javacard.gp.GlobalPlatform.giveStrictWarning(GlobalPlatform.java:207)
        at pro.javacard.gp.GlobalPlatform.openSecureChannel(GlobalPlatform.java:583)
        at pro.javacard.gp.GPTool.main(GPTool.java:463)