Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone SCardTransmit()始终返回6d00_Iphone_Smartcard_Smartcard Reader_Emv - Fatal编程技术网

Iphone SCardTransmit()始终返回6d00

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

我正在试着读信用卡上的姓名、卡号、有效期等。但是调用SCardTransmit时总是返回
6d00

我使用的是预定义的辅助工具,我在谷歌上搜索到它是有效的(如果我错了,请纠正我)。以下是:

AID_LIST = { 
  "A0000000421010",
  "A0000000422010",
  "A0000000031010",
  "A0000000032010",
  "A0000000041010",
  "A0000000042010",
  "A00000006900",
  "A0000001850002"
}

提前感谢。

您需要查找/购买ISO 7816、EMV规范和供应商卡规范,否则您不知道自己在做什么。

我不熟悉您正在使用的API,但您必须发送以下APDU命令序列:

  • 选择PSE(用于联系卡),由EMV在第1册11.3中指定。例如“00A404000E315041592E53595332E44446303100”
  • 返回SFI后,您可以读取记录以查找支持的辅助工具。但是,您可以按照第1册12.3.3中的指导原则,使用您指定的预定义辅助工具“反复试验”并调用选择辅助工具来实现这一点
  • 您可以调用“获取处理选项”命令查看哪些记录可供读取,也可以调用“读取记录”命令对可能的记录进行扫描来读取所有可能的记录。在其中一个记录中,您将拥有您要查找的数据 通常在同一记录中,您将存储持卡人姓名、PAN和Track 2自由裁量数据(其中包含到期日期)

    标签列在第3册中

    应用程序主帐号(PAN)-5A 持卡人姓名-5F20 第2轨自主数据-9F20

    关于轨道2的有用信息:

    上述序列的一个示例:

    EMV规格:


    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(智能卡命令)的知识,就不可能有多大的进步。但是,当trasnmit
    0084000008
    很好时,我能够得到除
    6D00
    以外的东西。这意味着你有一个硬件随机数发生器供你使用:)恐怕我没有。你能给我一个指示我该去哪里看吗?有这方面的教程吗?我只是想知道我该如何阅读我的VISA详细信息。EMV卡的傻瓜规格?我不知道,你找过开源实现吗?是的,我没有找到。难道没有办法检测这些吗?因为我看到很多人都能做到这一点,@HelmiB很多人都做到了,而且还有很多人,不过大多数人都会在一家专门从事智能卡的公司工作,而且大多数人都没有开源他们的LIB。在搜索时,你应该寻找大学和研究公司,他们通常对此类卡的安全功能感兴趣。谢谢你的努力。我确实尝试了
    00A40400
    ,但显示了
    6d00
    。我尝试了所有示例输出,但都返回相同的
    6d00
    。很明显我错过了一些新的东西。编辑:我得到了更多,
    611c
    6a82
    尝试了您给出的示例输出。但是我没有看到在exampleoutput中显示完全相同的响应。对不起,我的答案中遗漏了一些东西。选择的PSE实际上是“00A404000E315041592E5359532E44446303100”(我在回答中更正了这一点);