计算机tlv简介_TLV 格式及编码
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 格式及编码相关推荐
- 计算机tlv简介_TLV编码格式详解
涉及到通信的地方就会需要通信协议,因为只有确定了通信协议,通信双方才能理解对方所发来的数据有什么含义.BER(Basic Encoding Rule)是一种编码规格说明,描述如何将ASN.1类型的值编 ...
- 计算机tlv简介_优化TLV编码规则
优化 TLV 编码规则 王沁 ; 许娜 ; 张燕 ; 张晓彤 [期刊名称] <计算机科学> [年 ( 卷 ), 期] 2008(035)011 [摘要] 抽象语法标记 ASN.1 是一种 ...
- 计算机tlv简介_TLV2462
TLV2460, TLV2461, TLV2462, TLV2463, TLV2464, TLV2465, TLV246xA FAMILY OF LOWĆPOWER RAILĆTOĆRAIL INPU ...
- 使用计算机制作数字文本格式,计算机中数字、文字、图像、声音和视频的表示与编码...
设计计算机的最初目的是进行数值计算,计算机中首先表示的数据就是各种数字信息.随着应用的发展,现在计算机数据以不同的形式出现,如:数字.文字.图像.声音和视频等.但是,在计算机内部,这些数据形式还是以数 ...
- tlv c语言,TLV简介以及c语言实现装包与解析
一.TLV简介 协议可以使双方不需要了解对方实现细节的情况下进行通信,因此双方可以是异构的,例如服务器可以是c,客户端可以是java,基于相同的协议,我们可以用自己熟识的语言工具来对通信发送的数据装包 ...
- 计算机二级日期格式,09年计算机二级辅导:指定格式的日期字符串转化成java.util.Date类型日期对象...
09年计算机二级辅导:指定格式的日期字符串转化成java.util.Date类型日期对象 分类:计算机等级| 更新时间:2008-10-16| 来源:教育联展网 将未指定格式的日期字符串转化成java ...
- 计算机操作简介,什么是计算机操作的快捷键?计算机操作快捷方式简介
计算机已经是现代生活中必不可少的产品. 无论是工作,生活还是娱乐,他们都离不开计算机. 没有电脑,生活会很无聊. 使用计算机时,不同的人对计算机有不同的了解,因此使用计算机时会有所不同. 如果您可以在 ...
- 计算机网络应用简介_计算机网络简介
计算机网络应用简介 Find out about computer networks in this crash course. You will learn about the following ...
- java json重命名,eclipse中java变量怎么变成json格式的编码?
我们想要使用eclipse来进行从java变量到json格式的编码米该怎么实现呢?下面我们就来看看详细的教程. 一.导入jar包 1.我们首先要下载好我们需要的json包,然后我们右击项目,选择&qu ...
最新文章
- getdate函数_SQL日期函数和GETDATE解释为带有语法示例
- 机洗内裤容易得暗病?这个锅我们袜子不背!
- 使用 rose 将 c++代码转换为 uml 类图
- mybatisplus查询今天的数据_springboot集成mybatisPlus
- 格式转换------用C#代码生成一个简单的PDF文件
- 自媒体运营,你要的小工具来了
- pdn阻抗测试_阻抗测试基础(超详细,安捷伦工程师力作)(上篇)
- 3dmax实例教程-使用3ds Max 创建一个完整的场景
- 重置Windows 7网络设置
- 历年研究生数学建模优秀论文汇总
- 分享一些百度贴吧引流的实用干货和防删技巧
- 新能源车辆越来越多了,车牌识别核心技术
- colojure语言基础入门
- kali 去windows共享数据--smbclient使用方法_原水_新浪博客
- easycode配置问题
- 怎么裁剪视频?手把手教你裁剪
- SQL注入之字符型注入练习(pikachu)
- Flutter 中 Card 设置圆角
- JSP简明教程:汇总
- KNIME 数据分析平台
热门文章
- 基于python+django的图书馆借阅可视化管理系统#毕业设计
- android7.0苹果x,微信发布7.0.17版,新功能太强大!不过仅苹果用户能享受
- 计算机网络技术无线自组网,什么是自组网
- Speedoffice(word)如何插入空白页
- 数据库字段类型DECIMAL理解
- Java打印实心和空心钻石
- 网络工程师成长日记369-中铁20局延安更换路由器项目
- C语言:二维数组的使用及水平制表符(tab)
- 调查了 12,000 名女性开发者发现,女性比男性更懂 Java!
- 华为鸿蒙系列手表价格,基于鸿蒙打造!华为即将发布 WATCH 3 系列手表