首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EMV智能卡TLV格式错误?

EMV智能卡TLV格式错误?
EN

Stack Overflow用户
提问于 2014-11-13 06:51:45
回答 2查看 2.1K关注 0票数 4

我正在开发一个用于读取EMV卡的智能卡读取器。我正在制作一张万事达卡,我正试着读一张特定的唱片。结果显示读取很好,但是当我解析结果时,它们似乎不遵循TLV标准,在TLV标准中,结果以标记/模板长度-值格式出现。返回的结果的样本如下:

读取记录响应标签

81 -应该标明长度

e0 -应该是标签/模板.?

8f -Should表示prev的长度。标签.

01 05 9 f 32 . 90 00

我的问题是头几个字节。第一个字节表示读取记录模板,但第二个字节表示长度,第三个字节表示值,它是下一个标记的开头。但是没有标记为E0的EMV标签,所以我是错误地翻译了结果,还是缺少了什么东西。我使用相同的命令读取了以前的记录,结果显示得很好:

70 -标签

27

61 -另一个标签/模板指示符等。

25楼07 . 90 00

我做错什么了?或者如何翻译这些结果?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-13 08:25:54

这里的长度是以BER格式编码的。这意味着81表示后面有一个长度字节(只有长达7F的长度可以直接用一个字节编码),所以E0是长度,8F是标记。有关更多细节,请参阅。ISO 7816-4 (在2005年版本中是第5.2.2.2章BER长度字段).最后90000是SW1/SW2,表示读取成功。

票数 2
EN

Stack Overflow用户

发布于 2014-11-16 11:55:09

正如guidot所说,TLV中的长度组件并不总是一个字节。标签也是如此。您可以尝试将您的响应粘贴到http://tvr-decoder.appspot.com/中。在第一个下拉菜单中选择TLV数据。

EMV 第3册有一节专门讨论BER.

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

https://stackoverflow.com/questions/26902973

复制
相关文章

相似问题

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