Iphone SCardTransmit()始终返回6d00
我正在试着读信用卡上的姓名、卡号、有效期等。但是调用SCardTransmit时总是返回Iphone SCardTransmit()始终返回6d00,iphone,smartcard,smartcard-reader,emv,Iphone,Smartcard,Smartcard Reader,Emv,我正在试着读信用卡上的姓名、卡号、有效期等。但是调用SCardTransmit时总是返回6d00 我使用的是预定义的辅助工具,我在谷歌上搜索到它是有效的(如果我错了,请纠正我)。以下是: AID_LIST = { "A0000000421010", "A0000000422010", "A0000000031010", "A0000000032010", "A0000000041010", "A0000000042010", "A00000006900", "A
6d00
我使用的是预定义的辅助工具,我在谷歌上搜索到它是有效的(如果我错了,请纠正我)。以下是:
AID_LIST = {
"A0000000421010",
"A0000000422010",
"A0000000031010",
"A0000000032010",
"A0000000041010",
"A0000000042010",
"A00000006900",
"A0000001850002"
}
提前感谢。您需要查找/购买ISO 7816、EMV规范和供应商卡规范,否则您不知道自己在做什么。我不熟悉您正在使用的API,但您必须发送以下APDU命令序列:
ISO 7816中列出了可能的返回代码,如61XX、9000等。这里有一个很好的概述:APDU跟踪显然是必需的6D00,因此我认为您在
SELECT
命令中犯了错误。您能详细说明一下吗?关于SELECT
命令,您是什么意思?我没有那个命令。我的命令都以SCardxxx开始
SCardxxx是要调用的API例程,SCardTransmit是向卡发送命令APDU的例程。AID本身不是有效的APDU,但是,它必须包装在Select命令APDU(参见ISO 7816-4)00 A4 04 00[AID长度][AID本身]中。如果没有一些关于7816-4(智能卡命令)的知识,就不可能有多大的进步。但是,当trasnmit0084000008
很好时,我能够得到除6D00
以外的东西。这意味着你有一个硬件随机数发生器供你使用:)恐怕我没有。你能给我一个指示我该去哪里看吗?有这方面的教程吗?我只是想知道我该如何阅读我的VISA详细信息。EMV卡的傻瓜规格?我不知道,你找过开源实现吗?是的,我没有找到。难道没有办法检测这些吗?因为我看到很多人都能做到这一点,@HelmiB很多人都做到了,而且还有很多人,不过大多数人都会在一家专门从事智能卡的公司工作,而且大多数人都没有开源他们的LIB。在搜索时,你应该寻找大学和研究公司,他们通常对此类卡的安全功能感兴趣。谢谢你的努力。我确实尝试了00A40400
,但显示了6d00
。我尝试了所有示例输出,但都返回相同的6d00
。很明显我错过了一些新的东西。编辑:我得到了更多,611c
和6a82
尝试了您给出的示例输出。但是我没有看到在exampleoutput中显示完全相同的响应。对不起,我的答案中遗漏了一些东西。选择的PSE实际上是“00A404000E315041592E5359532E44446303100”(我在回答中更正了这一点);