TLV

格式及编码

几乎所有的需要在卡片和终端之间传送的数据都是

TLV

格式的

. PBOC

文档里并没有对

TLV

编码细节做具体说明

,

EMV

的手册里虽有叙述,

但并不详细

.

我下面就要很详细的分

TLV

的编码格式并给出相应的

TLV

解码的伪代码

.

TLV

tag,

length

value

的缩写

.

一个基本的数据元就包括上面三个域

.

Tag

唯一标

识该数据元

, length

value

域的长度

. Value

就是数据本身了

.

举个例子

,

下面是一个

tlv

格式的

AID

(应用标识符)字节串”

9F0607A0000000031010

,

其中

9F06

tag, 07

是长度

,  A0000000031010

就是

AID

本身的值了

.

对于程序编写人员来说,

我们关心的是,

如果有类似上面这样的一串

TLV

编码的字节串

从卡片传过来

,

怎么样从中提取我们想要的数据

.

这就牵扯出

TLV

解码的问题了

.

其中

BER-TLV

编码是

ISO

定义一种规范

,

然后到了

PBOC/EMV

里被简化了

,

哪里被简化

了呢

?

举一个例子

, tag

域在

ISO

里可以有多个字节

,

PBOC/EMV

里规定只用前两个字节

.

我下面要讲的

TLV

解码就是基于

PBOC/EMV

的简化版本

.

首先看一下

tag

域是怎样编码的

. Tag

域占最多占两个字节

.

编码规则如下面两幅图:

<

1>

<

1>

解释一下这两幅图

.

第一个图是第一个字节的编码规则

. b8

b7

两位标识

tag

所属

类别

.

这个可以暂时不用理

.  b6

决定当前的

TLV

数据是一个单一的数据和复合结构的数

.

复合的

TLV

是指

value

域里也包含一个或多个

TLV,

类似嵌套的编码格式

.

b5~b1

如果

全为

1

,则说明这个

tag

下面还有一个子字节

.

占两个字节

,

否则

tag

占一个字节

.

第二幅图是说明如果

tag

占用两个字节

,

第二个字节的编码格式

.

B8

决定

tag

是否还

有后绪的字节存在,因为前面说过,

PBOC/EMV

里的

tag

最多占两个字节

,

所以该位保持为

0.

清楚了上面

tag

编码格式

,

可很容易写出

tag

域解码的代码了

.

假设,

终端接收到一人

字节串,这个字节串保存在

tlvData

的字节数组里

,

伪代码如下

计算机tlv简介_TLV 格式及编码相关推荐

  1. 计算机tlv简介_TLV编码格式详解

    涉及到通信的地方就会需要通信协议,因为只有确定了通信协议,通信双方才能理解对方所发来的数据有什么含义.BER(Basic Encoding Rule)是一种编码规格说明,描述如何将ASN.1类型的值编 ...

  2. 计算机tlv简介_优化TLV编码规则

    优化 TLV 编码规则 王沁 ; 许娜 ; 张燕 ; 张晓彤 [期刊名称] <计算机科学> [年 ( 卷 ), 期] 2008(035)011 [摘要] 抽象语法标记 ASN.1 是一种 ...

  3. 计算机tlv简介_TLV2462

    TLV2460, TLV2461, TLV2462, TLV2463, TLV2464, TLV2465, TLV246xA FAMILY OF LOWĆPOWER RAILĆTOĆRAIL INPU ...

  4. 使用计算机制作数字文本格式,计算机中数字、文字、图像、声音和视频的表示与编码...

    设计计算机的最初目的是进行数值计算,计算机中首先表示的数据就是各种数字信息.随着应用的发展,现在计算机数据以不同的形式出现,如:数字.文字.图像.声音和视频等.但是,在计算机内部,这些数据形式还是以数 ...

  5. tlv c语言,TLV简介以及c语言实现装包与解析

    一.TLV简介 协议可以使双方不需要了解对方实现细节的情况下进行通信,因此双方可以是异构的,例如服务器可以是c,客户端可以是java,基于相同的协议,我们可以用自己熟识的语言工具来对通信发送的数据装包 ...

  6. 计算机二级日期格式,09年计算机二级辅导:指定格式的日期字符串转化成java.util.Date类型日期对象...

    09年计算机二级辅导:指定格式的日期字符串转化成java.util.Date类型日期对象 分类:计算机等级| 更新时间:2008-10-16| 来源:教育联展网 将未指定格式的日期字符串转化成java ...

  7. 计算机操作简介,什么是计算机操作的快捷键?计算机操作快捷方式简介

    计算机已经是现代生活中必不可少的产品. 无论是工作,生活还是娱乐,他们都离不开计算机. 没有电脑,生活会很无聊. 使用计算机时,不同的人对计算机有不同的了解,因此使用计算机时会有所不同. 如果您可以在 ...

  8. 计算机网络应用简介_计算机网络简介

    计算机网络应用简介 Find out about computer networks in this crash course. You will learn about the following ...

  9. java json重命名,eclipse中java变量怎么变成json格式的编码?

    我们想要使用eclipse来进行从java变量到json格式的编码米该怎么实现呢?下面我们就来看看详细的教程. 一.导入jar包 1.我们首先要下载好我们需要的json包,然后我们右击项目,选择&qu ...

最新文章

  1. getdate函数_SQL日期函数和GETDATE解释为带有语法示例
  2. 机洗内裤容易得暗病?这个锅我们袜子不背!
  3. 使用 rose 将 c++代码转换为 uml 类图
  4. mybatisplus查询今天的数据_springboot集成mybatisPlus
  5. 格式转换------用C#代码生成一个简单的PDF文件
  6. 自媒体运营,你要的小工具来了
  7. pdn阻抗测试_阻抗测试基础(超详细,安捷伦工程师力作)(上篇)
  8. 3dmax实例教程-使用3ds Max 创建一个完整的场景
  9. 重置Windows 7网络设置
  10. 历年研究生数学建模优秀论文汇总
  11. 分享一些百度贴吧引流的实用干货和防删技巧
  12. 新能源车辆越来越多了,车牌识别核心技术
  13. colojure语言基础入门
  14. kali 去windows共享数据--smbclient使用方法_原水_新浪博客
  15. easycode配置问题
  16. 怎么裁剪视频?手把手教你裁剪
  17. SQL注入之字符型注入练习(pikachu)
  18. Flutter 中 Card 设置圆角
  19. JSP简明教程:汇总
  20. KNIME 数据分析平台

热门文章

  1. 基于python+django的图书馆借阅可视化管理系统#毕业设计
  2. android7.0苹果x,微信发布7.0.17版,新功能太强大!不过仅苹果用户能享受
  3. 计算机网络技术无线自组网,什么是自组网
  4. Speedoffice(word)如何插入空白页
  5. 数据库字段类型DECIMAL理解
  6. Java打印实心和空心钻石
  7. 网络工程师成长日记369-中铁20局延安更换路由器项目
  8. C语言:二维数组的使用及水平制表符(tab)
  9. 调查了 12,000 名女性开发者发现,女性比男性更懂 Java!
  10. 华为鸿蒙系列手表价格,基于鸿蒙打造!华为即将发布 WATCH 3 系列手表