【发布时间】:2020-06-19 22:36:37
【问题描述】:
确定非接触式 EMV 卡发行人的最佳方法是什么。我正在尝试确定一张卡是由 Amex、Visa 还是 Mastercard 发行的。该信息是否可通过 USB EMV 阅读器获得?我不需要从卡中提取任何其他信息..
我假设它可以通过一些 python 或与卡交互的 C++ 代码来完成。我正在寻找一个好的起点。
【问题讨论】:
标签: emv
确定非接触式 EMV 卡发行人的最佳方法是什么。我正在尝试确定一张卡是由 Amex、Visa 还是 Mastercard 发行的。该信息是否可通过 USB EMV 阅读器获得?我不需要从卡中提取任何其他信息..
我假设它可以通过一些 python 或与卡交互的 C++ 代码来完成。我正在寻找一个好的起点。
【问题讨论】:
标签: emv
您应该能够从 SELECT 的成功响应中获取此信息。存储 RID 列表( AID = RID + PIX ),并一一选择。成功时返回状态字节 90 00,否则返回 6A 82(file not found)。
【讨论】:
如前所述,最简单的选择是通过 SELECT 命令 前。援助名单:
另一种选择是从 PAN 获取它。您可以定义发行人 基于 PAN 的前 6 位或 8 位,代表 Issuer 识别号 (IIN)/银行识别号 (BIN)。
- 34, 37 - 美国运通
- 4 - 签证
- 51-55、2221-2720 - 万事达卡
https://en.wikipedia.org/wiki/Payment_card_number#Issuer_identification_number_(IIN) 您必须发送命令:
- 选择
- 获取处理选项
- 阅读记录
您将查找 5A - PAN 并提取第一个数字。
您可以用来从非接触式 EMV 卡读取数据的好工具是: https://www.javacardos.com/tools/pyresman
您可以创建自己的脚本或只执行一些基本命令,例如 SELECT 命令。
【讨论】: