c# - 解码 EMV TLV 数据

标签 c# .net emv verifone tlv

我正在开发支持 EMV 卡的 POS 应用程序。我能够从 TLV 中的 Verifone MX 读卡器读取卡数据,但在将 TLV 数据解码为可读数据时遇到问题。

我能够将数据拆分为 TLV 标签及其值。结果值是十六进制而不是解码文本。

例子:

这是一个样本 TLV 数据(我得到了这个样本 TLV 数据 here

6F2F840E325041592E5359532E4444463031A51DBF0C1A61184F07A0000000031010500A564953412044454249548701019000

当我在 TLVUtil 中检查此 TLV 时,我以可读格式获取某些标签中的数据(如此处的标签 50)。

在我的申请中我能得到的最接近的是:

Tag Value
50  56495341204445424954
4F  A0000000031010
61  4F07A0000000031010500A56495341204445424954870101
6F  840E325041592E5359532E4444463031A51DBF0C1A61184F07A0000000031010500A56495341204445424954870101
84  325041592E5359532E4444463031
87  1
90  
A5  BF0C1A61184F07A0000000031010500A56495341204445424954870101
BF0C 61184F07A0000000031010500A56495341204445424954870101

我想知道是否有任何方法可以识别某些需要从十六进制转换为字符串的标签,或者 .Net 中是否有任何可用的 TLV 解析器和解码器可以复制 TLVUtil工具。

最佳答案

EMV 标签的完整列表,可在 EMVCo 4.3 规范手册 3 中找到 - 您可以从这里下载 - https://www.emvco.com/download_agreement.aspx?id=654 数据的表示方式因字段而异。检查“附件 A - 数据元素字典”

4.3 节中提到了有关编码的详细信息

阅读这两个部分,您的问题就解决了。

关于c# - 解码 EMV TLV 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36740699/

相关文章:

c# - 如何将 GZipStream 与 System.IO.MemoryStream 一起使用?

c# - 多边有向图的循环枚举

c# - 如何在 Silverlight 中定位标签页的内容?

c# - 如何用记事本打开嵌入的字符串资源?

c# - 使用 C# 在内存中进行 XSLT 转换

emv - 检索 EMV 应用程序文件定位器而不获取处理选项

android - APDU 命令使用三星 Galaxy S4 从支持 visa Paywave NFC 的卡中读取信用卡数据

c - 如何在c中从ingenico设备获取apdu命令日志?

c# - 使用DB表结构创建DataTable

c# - 如何找到 visual studio 正在寻找程序集引用的位置