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. 自动驾驶中图像与点云融合的深度学习研究进展综述
  2. jdk安装失败_jenkins全局工具jdk、maven安装
  3. python(40):利用utf-8编码判断中文英文字符
  4. java西游记壹_岩浆数码再现手机RPG游戏--西游记壹
  5. Linux的pcel问题-bash: pecl: command not found
  6. 截屏当前界面_华为手机居然有这3种神奇的截屏方法,用过后,我就再也离不开了...
  7. 前端学习(1963)vue之电商管理系统电商系统之控制级联选择框的选择范围
  8. @param注解的用法解析_SpringBoot 配置类解析
  9. 20155209 2016-2017-2 《Java程序设计》第五周学习总结
  10. linux 终端中文乱码解决方法
  11. 解决TIME_WAIT造成的服务器无法访问
  12. Mysql 主从复制简易操作指南
  13. 使360浏览器自动使用最高IE内核
  14. python输出数字三角形_Python|2020蓝桥杯之数字三角形
  15. 图形学中走样(Aliasing)和反走样(Antialiasing)
  16. 这种木头比钢和陶瓷更锋利,轻松切开半熟牛排,钉穿三层木板,还永不生锈 | Cell子刊...
  17. Java项目:JSP二手自行车在线销售商城平台系统
  18. Spring源码系列- Spring Beans - 核心类的基本介绍
  19. 用来制作可启动U盘的Windows开源工具--Ventoy
  20. Java内存模型:线程并发下的对象逸出

热门文章

  1. 初遇初识初知接下来是什么_红色卫衣搭配什么外套?最时髦的卫衣搭配别错过了...
  2. 1024程序员节,腾源会邀你一起狂欢
  3. SketchUp导出有纹理贴图的模型进入Unity3d的设置
  4. random — 伪随机数生成器(史上总结最全)
  5. Python 点滴积累(4)
  6. 11 - 15 绝地求生值数分
  7. 苹果关闭自动更新_刚入手的苹果手机,记得关闭这3个设置,能让手机更省电...
  8. 揭秘电影版《武林外传》 佟掌柜成钉子户
  9. Yii2 GridView 表格用法
  10. 弘辽科技:淘宝品牌混淆会被扣分吗?