EMV 读取 PAN 代码

2024-02-16

我需要通过芯片读取每张可能的卡的 PAN 代码。 在我的工作中,我只能使用 C,而且我没有可以帮助我完成这项无聊任务的例程。 这就是我使用 APDU 的步骤:

1)选择1PAY.SYS.DDF01

00 A4 0400 0E 315041592E5359532E4444463031    

进而00 C0 0000 22 315041592E5359532E4444463031从响应中读取所有数据。 完整回应:

6f 20 e 84 31 50 41 59 2e 53 59 53 2e 44 44 46 30 31 a5 e 88 1 1 5f 2d 69 8 74 65 6e 66 72 65 73 90

2) READ RECORD 获取具体的AID

00 B2 010C 00 

完整回应:

70 17 61 15 4f 7 a0 0 0 0 4 30 60 50 7 4d 41 53 54 52 45 4f 87 1 1 90

3) 选择 AID(在我的例子中,AID 是之前响应中的 A0000000043060)

00 A4 0400 07 A0000000043060

同样在这种情况下,我得到响应:61 36,因此我使用以下命令重新调用该命令:

00 C0 0000 36 A0000000043060

完整回应:

6f 0 41 45 53 52 4f 54 87 1 1 34 84 a0 7 0 0 4 30 60 a5 29 50 7 4d 5f 2d 8 69 74 65 6e 72 66 65 73 bf c f 9f 4d 2 b a 9f 6e 3 7 80 0 0 30 30 0 90

现在我使用的每个命令都会收到错误消息。 我不明白我是否必须使用读取数据、读取记录、获取处理选项或其他功能。 你能给我一些关于我现在必须做什么的提示吗?

我需要获取卡的 16 个字符代码,该代码通常清晰地打印在卡上。

谢谢大家


打印在智能卡(支付芯片卡)上的 8 字节(16 位数字)代码是可检索的。该信息是标签 57 中记录中个性化的“轨道 2 等效数据”的一部分。

您可以分割此“Track 2 Equivalent Data”的最初 8 个字节来获取代码。

现在如何获取“Track 2 等效数据”:

  1. 选择付款应用程序(此处不包括 PSE/PPSE 流程,因为您可以这样做)

  2. 发送 GPO 命令。如果 GPO 命令 APDU 中不需要 PDOL 数据,通常 80 A8 00 00 02 83 00 是 GPO 的 APDU。 (如果 SELCT 命令的响应中不存在 9F38 标签,则只需发送此 APDU,否则必须创建 PDOL)。有关 GPO 响应的更多详细信息,请参阅 EMV 4.3 第 3 册第 6.5.8 节。

  3. 您将在 GPO 的响应中获得 AFL,并根据 AFL 读取应用程序中的所有可用记录。通常,磁道 2 数据可以在 2 或 3 个初始记录内找到。

    要了解 AFL 的编码,您可以参考 EMV 4.3 第 3 册第 10.2 节。

    要了解 READ RECORD APDU 结构,请参阅 EMV 4.3 第 1 册第 11.2 节。

  4. 其中一条记录必须包含标签 57,您才能获取该值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

EMV 读取 PAN 代码 的相关文章

  • 解析 EMV 事务中 GET PROCESSING OPTIONS 命令的 PDOL

    我正在尝试构建一个格式正确的 GET PROCESSING OPTIONS 命令以发送到非接触式 EMV 卡 这个帖子非常有帮助 但我只需要了解更多细节 解析 PDOL 时 是否可以安全地假设每个标签的长度为 2 个字节 后跟预期返回的数据
  • Safe Max Java 卡 APDU 数据命令和响应大小

    Java Card APDU 中建议的数据字段大小是多少 来自陈志群的Java Card Technology for Smart Cards Architecture and Programmer s Guide书中提到 Le 字段最多允
  • 生成 AC 命令上的 Android isoDep.transceive 始终返回 6D00 不受支持

    我正在尝试模拟 PoS 销售点 系统并使用在 2013 年 Nexus 7 无安全元件 v4 4 2 上运行的 Google 钱包完成交易 我的 PoS 原型也在 2013 Nexus 7 v4 4 2 上运行 我能够从 2PAY SYS
  • 读取EMV卡公共数据

    说我想读书publicEMV 卡的要素 我将列出一些我认为涉及的步骤 1 First select application In order to select application we must 1 find out AID of a
  • 如何向 HCE 设备发送命令 APDU?

    我的应用程序的 AID 是F239856324897348我为其构建了一个 SelectAID APDU 现在我如何实际将其发送到使用主机卡模拟的接收 Android 设备 我创建了 HCE 服务 以响应 APDU 进行响应 如以下线程所示
  • APDU 在 mifare classic 上写入块命令

    我一直在尝试将一些数据写入我的 Mifare 经典卡 首先我发送这两个命令 返回 90 00 加载 Mifare 钥匙 FF 82 20 01 06 FF FF FF FF FF FF 认证 FF 86 00 00 05 01 00 01
  • 解析 EMV 9F10 令牌

    我收到以下信息IAD处理后GPO command 那么我的问题是 怎么样9F10 EMV token建造 这是令牌 06010A03A020000F04000000000000000000006232E4F9 我只需要发送CVR部分到采集开
  • 验证和认证的区别?

    如您所知 我们通过以下方式向卡证明我们是真实用户INITIAL UPDATE and EXTERNAL AUTHENTICATION命令 如下 lt 80 50 00 00 08 Host Challenge gt lt 84 82 03
  • Android 中的 Mifare Ultralight C 身份验证 (2.3.6)

    我正在尝试验证 Mifare Ultralight C ISO IEC 14443 2 和 14443 3 A 型兼容 标签 我使用Android中提供的MifareUltralight transceive 函数发送身份验证命令 我还检查
  • Android ACR122U NFC 集成

    See NFC 读取器 SELECT 通过 AID APDU 未路由到 Android 设备 https stackoverflow com q 50316799 2425802关于调试和最终结果 TL DR 读者可能已经不复存在了 我的
  • 请求 EMV 卡的 GPO 命令时出现解析器错误

    我在使用 VISA 卡的 GET PROCESSING OPTIONS GPO 命令时遇到一些问题 以下是我对 VISA 应用程序的 SELECT 命令的响应 6F408407A0000000031010A535500A5649534120
  • 带有 ACR122U 的 libnfc 对 SELECT(通过 AID)APDU 没有响应

    See NFC 读取器 SELECT 通过 AID APDU 未路由到 Android 设备 https stackoverflow com q 50316799 2425802关于调试和最终结果 TL DR 读者可能已经不复存在了 我有
  • 使用 PPSE 而不是 PSE 读取 EMV 卡

    我正在尝试读取非接触式 Visa Paywave 卡上的数据 对于 Paywave 我必须使用 PPSE 2PAY SYS DDF01 而不是 PSE 1PAY SYS DDF01 提交 SELECT EMV 书籍 1 第 11 3 4 节
  • Java 卡连接到模拟器失败

    我正在尝试测试 Java Card 小程序以建立与 cref 等模拟器的连接 try sckClient new Socket localhost 9025 InputStream is sckClient getInputStream O
  • 从 Mastercard/VISA 借记卡/信用卡读取 EMV 数据 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试构建一个应用程序来读取 编码卡上的数据 如 PAN 到期日 客户名称 PIN 等信息 到目前为止 我发现我需要发送 APDU
  • “直接传输命令”(ACR122U) 和“PC_to_RDR_Escape”(ACR1251U) 之间的区别

    对于 ACR122U 我知道您可以使用直接传输命令将直接消息传输到 NFC 控制器 PN532 0xff 0x00 0x00 0x00 当我阅读 ACR1251U 的手册时 它说 读写器的外设控制命令通过PC to RDR Escape实现
  • 如何发送APDU到Mifare Classic 1k卡?

    我想要实现的是将 APDU 命令发送到 MIFARE Classic 1K 卡以更改其 A 和 B 密钥 我能够与卡建立连接并使用默认密钥 FFFFFFFFFFFF 来读取块 0 和块 1 我使用了 HID MifareSamples 应用
  • Android 应用程序模仿物理 RFID 卡

    Android 应用程序是否可以将之前存储的 RFID 卡 ID 发送到 NFC 读卡器 目标是使用 Android 设备代替物理 RFID 卡来访问房间 在阅读了许多有关 NFC RFID 和卡模拟的其他帖子后 我得出的结论是 它目前在
  • 在智能卡中选择DF(专用文件),返回错误6981

    我编写了一个与智能卡通信的程序 Gemalto 公司 MPCOS 小程序 我可以成功连接到卡并传输命令并获取数据 但是我有一个问题 当我使用00 A4 01 00 02 02 00命令选择 DF 专用文件 它返回了错误69 81 文件指示符
  • 使用 PC/SC 读卡器验证 Ultralight EV1

    我在尝试使用 Java 中的 PC SC 读卡器 特别是 ACR1222L 验证 Ultralight EV1 卡时遇到问题 我能够使用 ISO 14443 3 标签的相应 APDU 在不受保护的标签上进行写入和读取 但是 我找不到运行 P

随机推荐

  • 如何排除表单子类中 ModelForm 中声明的字段?

    在 Django 中 我试图从中派生 子类 一个新形式ModelForm我想删除一些字段 或者只包含一些字段 更正确 当然 显而易见的方法是 基本形式来自django contrib auth forms class MyUserChang
  • 如何以编程方式检查Android设备是否支持OTG功能

    我想以编程方式检查设备是否支持 OTG 功能 我在互联网上尝试了很多相关内容 但找不到任何东西 我怎样才能做到这一点 感谢 CommonsWare 如何检测Android是否完全支持USB https stackoverflow com q
  • ios 区分主页按钮点击和来电?

    是否有任何解决方案可以区分手动退出应用程序 通过单击主页按钮 和通过来电退出应用程序 请帮忙 是的 有点像 单击主页按钮或关闭屏幕将导致您的应用程序进入后台 applicationDidEnterBackground 而电话则不会 只会让您
  • 安装 Ruby 后,MAC OS X 上的活动开发人员路径无效

    我收到此错误 xcrun 错误 无效的活动开发人员路径 Applications Xcode app 缺少 xcrun 位于 Applications Xcode app usr bin xcrun This solution https
  • 使用 $http 单元测试 Angular 指令

    我有一个 Angular 指令 当附加到
  • :概要:在 Sphinx 自动模块中不起作用

    我正在使用 Sphinx 非常喜欢它 但它不会获取模块概要 没有错误或任何东西 只是简单 什么都没有 这是我试图自动记录的模块 vim set fileencoding utf 8 module CONF synopsis Configur
  • 使用 google chrome 扩展的 javascript 将文本插入文本区域

    我正在尝试扩展现有谷歌浏览器扩展的功能 使用 Wrike google chrome 扩展 我的目标是添加一个按钮 或多个按钮 该按钮将向描述字段 文本区域 添加一些文本 期望的效果是 如果用户单击 添加模板 按钮 代码 文本将被插入到 i
  • Spring + Hibernate + Sql Server 连接失败

    当我结合使用 Spring Hibernate 和 SQL Server 时 出现以下错误 19 17 09 137 ERROR org hibernate tool hbm2ddl SchemaValidator MSC service
  • 如何在 TDB TripleStore 中加载模型

    我有一个问题问你 我想在我的 Jena TDB TripleStore 上加载一个文件 我的文件很大 大约80Mb 大约700000个三倍RDF 当我尝试加载它时 执行停止工作或需要很长时间 我正在使用在 Web 服务上运行的代码 Stri
  • 如何在文本的某一行末尾添加内容

    我想在某一行的末尾添加一些内容 有一些给定的字符 例如 文本是 Line1 I just want to make clear of the problem Line2 Thanks to all who look into my prob
  • 当鼠标悬停在元素上加载页面时,jQuery 触发鼠标悬停功能

    我有一个 ASP NET 文档 其中包含一个 Image 元素 我创建了一个mouseover在此图像元素上运行并且运行良好 问题是 如果文档加载自身时鼠标已位于该元素上 则mouseover函数不触发 我需要mouseout进而mouse
  • 数组的最长公共前缀和后缀

    获取两个数组的最长公共前缀 从原始索引 0 开始的子数组 和后缀 以原始索引 1 结尾的子数组 的最佳方法是什么 例如 给定两个数组 foo 1 foo 0 nil bar baz false foo 1 foo 0 true bar fa
  • Java .equals() 子类实例?为什么不调用超类 equals 而不是将其设为 Final 呢?

    它在 Object 中声明 equals Object javadoc 它是对称的 对于任何非空参考值 x 和 y 当且仅当 y equals x 返回时 x equals y 才应返回 true 真的 在示例代码中几乎所有地方我都看到被覆
  • 将位值写入数据库

    我正在尝试将一个位值 真或假 写入数据库中名为 已处理 的字段中 我目前正在尝试通过传入 bool 值来实现此目的 但收到一条错误消息 指出无法从 varchar 类型转换为 bit 有人能看出我的逻辑是怎么回事吗 protected vo
  • 不支持推送导航控制器错误消息

    我正在开发一个应用程序 用户可以添加产品 然后这些产品将显示在 TableView 中 我创建了一个包含静态单元格和两个部分的 TableViewController 我想将第二部分中的单元格与另一个 TableViewController
  • 为什么在安装 python 的 psutil 包时出现错误?

    我在 Windows 64 位机器上安装了 python 版本 3 10 之后我喜欢安装 psutil python m pip install psutil 但我收到以下错误消息 Collecting psutil Using cache
  • 按顺序向上滑动元素

    Need to slideUp元素按顺序排列 一个接一个 而不是异步的 block2应该开始滑动时block1关闭了 block3应该开始滑动时block2关闭了 等等 实际上 我有很多这样的元素 因此任何嵌套语法 函数内的函数 都不适合
  • 使用 MultiDexApplication 导致 applicationContext 变为 null

    我已按照此链接中的说明将我的应用程序切换到 MultiDexApplication https developer android com studio build multidex html https developer android
  • 使用语句中是否需要 SqlConnection.Close() ?

    我正在使用这段代码 public void InsertMember Member member string INSERT INSERT INTO Members Name Surname EntryDate VALUES Name Su
  • EMV 读取 PAN 代码

    我需要通过芯片读取每张可能的卡的 PAN 代码 在我的工作中 我只能使用 C 而且我没有可以帮助我完成这项无聊任务的例程 这就是我使用 APDU 的步骤 1 选择1PAY SYS DDF01 00 A4 0400 0E 315041592E