首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EMV TLV数据解码

EMV TLV数据解码
EN

Stack Overflow用户
提问于 2016-04-20 10:16:11
回答 4查看 9.4K关注 0票数 2

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

我能够将数据分割成TLV标记及其值。结果值是十六进制,而不是解码文本。

示例:

这是一个样本TLV数据(我得到了这个样本TLV数据这里 )。

代码语言:javascript
复制
6F2F840E325041592E5359532E4444463031A51DBF0C1A61184F07A0000000031010500A564953412044454249548701019000

当我在TLVUtil中检查这个TLV时,我会以可读格式获得某些标记的数据(如这里的标签50 )。

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

代码语言:javascript
复制
Tag Value
50  56495341204445424954
4F  A0000000031010
61  4F07A0000000031010500A56495341204445424954870101
6F  840E325041592E5359532E4444463031A51DBF0C1A61184F07A0000000031010500A56495341204445424954870101
84  325041592E5359532E4444463031
87  1
90  
A5  BF0C1A61184F07A0000000031010500A56495341204445424954870101
BF0C 61184F07A0000000031010500A56495341204445424954870101

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-04-20 13:07:31

只有少数标记需要转换为字符串。通常,在POS屏幕上放置的标签都是个性化的,相当于可读字符串。

  • 5F20:持卡人名称
  • 50:应用程序标签。
  • 5F2D:语言偏好

您必须知道哪些标记可以转换。

票数 1
EN

Stack Overflow用户

发布于 2016-04-20 17:30:50

EMV标签的完整列表,并可在EMVCo 4.3规范书3中找到-您可以从这里下载- agreement.aspx?id=654如何表示不同字段的数据。查阅“附件A-数据要素词典”

有关编码的详情,请参阅第4.3节。

阅读这两部分,并解决你的问题。

票数 6
EN

Stack Overflow用户

发布于 2016-04-21 05:10:31

在我看来,通过编程你可以识别出,

标记为一个字节( 5A -潘号)或包含两个字节( 5F20 -卡片持有人名称),以及

长度为1字节或2字节

标记是原始的或构造的。更多您可以阅读这里

如果您知道这个列表,您可以得到一些有用的这里,它定义了您要寻找的标记的格式。

在这里,您可以硬编码格式,因为它是很好的定义。

希望能帮上忙。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36740699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档