DER编码简介
概念:
DER是BER的子集,它为每一个ASN.1类型定义一种唯一的编码方案。
DER与BER的区别:
DER在BER的基础上增加了如下限制:
长度小于等于127,必须使用短型长度表示法。
长度大于127,必须使用长型长度表示法,并且要尽可能的短。
对于简单的string类型以及在其基础上隐性标签生成的类型使用简单定长表示法。
对于结构化类型以及在其基础上隐性标签生成的类型以及所有的显示类型使用结构化定长表示法。
简单定长表示法和结构化类型表示法的区别是在TLV的T中bit6是0还是1。
DER的组成:
无论什么类型它的DER编码都是有四部分组成:
类型字段tag 长度字段length 值字段value 结束表示字段
即T L V
类型字段:
由一个字节(即八个二进制位)组成。
bit8 bit7用来表示tag类型,universal是00 application是01 context-specific是10 private是11
bit6表示结构化位,0代表简单类型,1代表结构类型
bit5-bit1表示tag值,tag值可以查表获得。
长度字段(以字节为计算单位):
长度字段分为两种:小于等于127和大于127
小于等于127:用一个字节表示。bit8=0,bit7-bit1表示长度值。
例子:38表示为00100110
大于127:由多个字节组成
第一个字节:bit8=1,bit7-bit1表示存放长度所占字节数(通俗的讲就是后面还有几个字节)
其余字节:存放长度值
例如:201表示为10000001 11001001
长度值不定:用0x80表示。
值字段:
不同的类型其值不同,但归根结底类型都是二进制,或十进制,或十六进制 ,或者是ASCLL字符,将他们转换为16进制表示出来即可。
结束标识字段(不在TLV之中):
两个字节,只有在长度值不定时才会出现。表示为0x000x00
DER编码简介的更多相关文章
- 密码学的基础:X.690和对应的BER CER DER编码
目录 简介 BER编码 类型标识符 长度 内容 CER编码和DER编码 总结 简介 之前我们讲到了优秀的数据描述语言ASN.1,很多协议标准都是使用ASN.1来进行描述的.对于ASN.1来说,只定义了 ...
- Java基础-二进制以及字符编码简介
Java基础-二进制以及字符编码简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 想必计算机毕业的小伙伴或是从事IT的技术人员都知道数据存储都是以二进制的数字存储到硬盘的.从事开 ...
- Unicode/UTF-8/GBK/ASCII 编码简介
转载:http://blog.csdn.net/u014785687/article/details/73928167 一.字符编码简介 1.ASCII编码 每一个ASCII码与一个8位(bit)二进 ...
- 字符编码简介:ASCII,Unicode,UTF-8,GB2312
字符编码简介:ASCII,Unicode,UTF-8,GB2312 1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和 1两种状态,因 ...
- 转载:字符编码简介 ASCII UTF-8 ISO8859-1
字符编码简介 ASCII UTF-8 ISO8859-1 博客分类: 电脑综合知识 XP数据结构Windows 计算机中的一切都是以数字来表示的,字符同样如此.字符编码就是将字符集编码成为数字序列, ...
- Base64编码简介
基本概念 Base64这个术语最初是在“MIME内容传输编码规范”中提出的.Base64不是一种加密算法,虽然编码后的字符串看起来有点加密的赶脚.它实际上是一种“二进制到文本”的编码方法,它能 ...
- 三种常见字符编码简介:ASCII、Unicode和UTF-8
什么是字符编码? 计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255( ...
- [十]基础数据类型之Unicode编码简介
编码含义 关于编码的含义,之前也说过,计算机只能存储二进制序列 所以对于字符,保存的时候,需要进行编码为二进制,进行存储 呈现的时候,需要将二进制进行解码,转换成字符的形式 有很多种编码方式,比如 ...
- 【转】BASE64编码简介
BASE64是一种编码方式,通常用于把二进制数据编码为可写的字符形式的数据. 这是一种可逆的编码方式. 编码后的数据是一个字符串,其中包含的字符为:A-Z.a-z.0-9.+./ 共64个字符:26 ...
随机推荐
- win7 64位环境下配置汇编环境和程序设计
下载dosbox,并解压安装 下载地址: http://pan.baidu.com/s/1eRJbJAq 默认安装到C:\Program Files (x86)\DOSBox-0.74 安装成功后,双 ...
- ls乱码问题解决
http://note.youdao.com/noteshare?id=c7ff510525b4dadaabb6f6a0a72040cc
- 为Azure Web Site 添加ADFS验证支持之一 设置ADFS的信任关系
很多时候企业开发的应用都会通过AD(Active Directory)进行验证用户名密码的,在企业里面统一一个AD来进行账号密码管理也是一个很好的实践.当企业打算将一个应用迁移到Azure的时候,使用 ...
- rename table table1 to table2;
1. MYSQL rename table table1 to table2;
- numpy数组中冒号和负号的含义
numpy数组中":"和"-"的意义 觉得有用的话,欢迎一起讨论相互学习~Follow Me 在实际使用numpy时,我们常常会使用numpy数组的-1维度和& ...
- Bootstrap 文件上传插件 FileInput的使用问题
: 在使用bootstrap的文件上传插件fileinput http://plugins.krajee.com/file-input的预览功能时,删除预览图片在 bootstrap 模态框中没有用, ...
- HDU 5213 分块 容斥
给出n个数,给出m个询问,询问 区间[l,r] [u,v],在两个区间内分别取一个数,两个的和为k的对数数量. $k<=2*N$,$n <= 30000$ 发现可以容斥简化一个询问.一个询 ...
- 通过cordova将vue项目打包为webapp
准备工作:需要之前配置好vue-cli脚架构,安装好cordova环境.下面开始对vue.js项目进行打包,打包环境为Android. 可以看下我的github:https://github.com/ ...
- C++ STL标准入门
C++:STL标准入门汇总 第一部分:(参考百度百科) 一.STL简介 STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称.它是由Alexand ...
- C语言回调函数总结
/* Main program ---calls--> Library function ---calls--> Callback funtion */ #include <stdi ...