tlv格式(TLV是什么意思)
大家好,如果您还对tlv格式不太了解,没有关系,今天就由本站为大家分享tlv格式的知识,包括TLV是什么意思的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
TLV 格式及编解码
几乎所有的需要在卡片和终端之间传送的数据都是TLV格式的.
我给你举个例子方便快速理吵隐如解:
TLV是 tag, length和 value的缩写.一个基本的数据元就包括上面三个域. Tag唯一标识该数据元, length是 value域的长度. Value就是数据本身了.举升启个例子,下面是一个tlv格式的AID(应用标识符)字节串” 9F0607A0000000031010”,其中 9F06是tag, 07是长度, A0000000031010就是AID本身的值了.

对于程序编写人员来说,如果有类似上面这样的一串TLV编码的字节串从卡片传过来,怎么样从中提取我们想要的数据.这就牵扯出TLV解码的问题了
TLV一种可变格式,TLV的意思就是:Type类型, Lenght长度,携困Value值;
Type和Length的长度固定,一般那是2、4个字节;
Value的长度有Length指定;
解析方法:
1.读取type转换为ntohl、ntohs转换为主机字节序得到类型;指针偏移+2或4
2.读取lenght,转换为ntohl、ntohs转换为主机字节序得到长度;指针偏移+2或4
3.根据得到的长度读取value,指针偏移+Length;
TLV编码就是指先对Tag编码,再对Length编码,最后对Value编码。
七言绝句书法作品格式
书法只有全篇章法没有规定的章差薯法格式起首就是诗文根据纸张大小诗文字数落款布局字形结构再进行美化排版统称为章法艺术的东西除了字本身以外章法是不一样的没有统一格式建议多看看书法帖网上能搜索到很多的七言绝句书法高宏作品看看别人怎么排版布局的戚庆册。
x509证书格式
x509证书格式?一、 X.509证书结构局孙
x.509标准规定了证书可以包含什么信息,并说明了记录信息的方法。
X.509结构中包括版本号(integer)、序列号(integer)、签名算法(object)、颁布者(set)、有效期(utc_time)、主体(set)、主体公钥(bit_string)、主体公钥算法(object)、签名值(bit_string)。
使用ASN.1描述,我们可以将其抽象为以下结构
Certificate::=SEQUENCE{
tbsCertificate TBSCertificate,
signatureAlgorithm AlgorithmIdentifier,
signatureValue BIT STRING
}
TBSCertificate::=SEQUENCE{
version [0] EXPLICIT Version DEFAULT v1,
serialNumber CertificateSerialNumber,
signature AlgorithmIdentifier,
issuer Name,
validity Validity,
subject Name,
subjectPublicKeyInfo SubjectPublicKeyInfo,
issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
extensions [3] EXPLICIT Extensions OPTIONAL
}
`
而本次实验,我选择使用从chrome上直接下载证书,此时我们可以看到,证书结构如下:
类结构信息备注
TBSCertificate版本信息证书的使用版本整数格式,0-V1,1-V2,2-V3
TBSCertificate序列号每个证书都有一个唯一的证书序列号整数格式
TBSCertificate签名算法得到签名时使用的算法有OID与之对应
TBSCertificate颁发者命名命规则一般采用X.500格式 Name
TBSCertificate有闷腊团效期通用的证书一般采用UTC时间格式,计时范围为1950-2049 Format:yymmddhhmssZ
TBSCertificate使用者使用证书的主体 Name
TBSCertificate主体密钥证书所有人的公开密钥
Certificate公钥签名算法证书公钥的加密算法有OID与之对应
Certificate签名值得到的签名结果
二、数据结构
【编码方法】
X509的编码方法为TLV结构,使用T记录当前数据的类型(type),使用L记录当前数据的长度(length),使用V记录当前数据的取值(value),其中,不同蚂橘的type值对应不同的数据类型
Type数据类型编码格式
01 Boolean 01;01;FF/00
02 Integer长度大于7f时,长度n与0x80进行“位或”运算的结果赋给length的第一个字节
03 Bit string填充0成为8的倍数,Value的第一个字节记录填充数
04 Ectet string 04;len;val
05 Null value部分为空,一共两字节
06 Object Identifier V1.V2.V3.V4.V5....Vn(1)计算40*V1+V2作为第一字节;(2)将Vi(i>=3)表示为128进制,每一个128进制位作为一个字节,再将除最后一个字节外的所有字节的最高位置1;(3)依次排列,就得到了value部分
19 ASCII string 13;len;val
23 UTCtime yymmddhhmssZ
24 Generalize time yyyymmddhhmssZ
48 Sequence constructer序列内所有项目的编码的依次排列
49 Set constructer**内所有项目的编码
160 Tag对于简单类型,type=80+tag序号;对于构造类型,type=A0+tag序号。length和value不变
【数据结构】
类的声明:均使用string类型记录数据,数据具体的内容已经在注释中标出
文章分享结束,tlv格式和TLV是什么意思的答案你都知道了吗?欢迎再次光临本站哦!
本文来源于互联网,不代表趣虎号立场,转载联系作者并注明出处:https://www.quhuhao.com/wzfl/11316.html


微信扫一扫