概念:

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解码规则_DER编码简介相关推荐

  1. 【协作MIMO+非规则LDPC】协作MIMO系统上,中继协作解码转发策略和编码协作策略,采用非规则LDPC编码

    1.软件版本 MATLAB2013b 2.本算法理论知识 做非规则LDPC码的以编码协作形式的中继协议,比较以下三种情况下的误码率图和中断概率图: 源节点一个(配置一根天线),中继节点4个(每个节点配 ...

  2. java der pem_JAVA解析各种编码密钥对(DER、PEM、openssh公钥)

    一.DER编码密钥对 先说下DER编码,是因为JCE本身是支持DER编码密钥对的解析的,可以参见PKCS8EncodedKeySpec和X509EncodedKeySpec. DER编码是ASN.1编 ...

  3. UUENCODE(UUE) 编码简介

    UUENCODE(UUE) 编码简介 注:UUENCODE下简称"UUE",基本介绍见百度:http://baike.baidu.com/link?url=qPMUBz9X4N2C ...

  4. php 64位编码解码,php base64 编码和解码

    /** * 自定义规则方式编码和解码 **/ public function test_changinttoStr () { $intvalue1 = 1232344234; $intStr = '' ...

  5. Base64编码简介及在java中的使用

     Base64编码简介及在java中的使用    Base64是大家经常使用的编码方式,最早是为了发送邮件附件而产生的,今天解决了一个Base64解码的错误,就趁机稍微总结一下吧. 原理 Base64 ...

  6. 视频编解码和MPEG4编码

    来自 http://blog.csdn.net/dansin/article/details/389149 MPEG-4编解码学习. 1.视频数据编码的办法对数据进行编码的目的前面以前提过,一方面降低 ...

  7. H264编码器5( x264源代码简单分析:x264_slice_write() 与H264 编码简介)

    x264源代码简单分析:x264_slice_write() 来自:https://blog.csdn.net/leixiaohua1020/article/details/45536607 H264 ...

  8. MPEG2视频编码简介

    MPEG-2视频编码简介 MPEG-2是一组用于视音频压缩编码及其数据流封装的国际标准.它定义了编解码技术及数据流的传输协议:制定了MPEG-2解码器之间的共同标准.编码是MPEG-2标准的核心内容之 ...

  9. python字符编码解码,文件编码解码。

    一.几个特别容易混淆和弄不清的概念 参考http://www.cnblogs.com/guosq/p/6378639.html 在python中,编码解码其实是不同编码系统间的转换,默认情况下,转换目 ...

最新文章

  1. C# App.config 自定义 配置节
  2. java 搭建企业应用框架_溯源微服务开发体系:一位Java开发者的转型思考
  3. python Django数据库保存操作
  4. Boost:使用OpenCV在图像或相机框架上应用sobel过滤器
  5. basepath的作用 (转)
  6. mysql在线开启并行复制_mysql 5.7开启并行复制
  7. python---统计列表中数字出现的次数
  8. React开发(149):ant design控制是否必填
  9. rm ,rm -rf , rm -f,rm -r 以及rm 命令的其他参数命令
  10. io里没有driveinfo没有_来福宝宝,愿天堂里没有病痛
  11. 三菱PLC(FX5U)与C#通信说明
  12. linux下查看book文件夹,Linux初级入门百篇-find命令
  13. win7如何显示文件后缀名 win7怎么显示文件后缀名?
  14. 2016 360校招笔试编程题
  15. TS中的方法重载,函数重载,构造器重载
  16. android版本内存多少,内存大小决定Android系统版本?
  17. 城市虚拟交通系统与交通发展决策支持模式研究
  18. 【算法总结】根号算法相关
  19. 1926:【04NOIP普及组】不高兴的津津
  20. win7更新,360手机安装谷歌框架

热门文章

  1. wxWidgets:wxSplitterWindow 示例
  2. boost::unique_copy相关的测试程序
  3. 使用 Boost.MPI 的 all_reduce() 计算最小值的示例
  4. boost::hana::drop_back用法的测试程序
  5. boost::geometry::densify用法的测试程序
  6. boost::fusion::extension::adt_attribute_proxy用法的测试程序
  7. GDCM:gdcm::Attribute的测试程序
  8. GDCM:DICOM文件转储ADAC文件的测试程序
  9. ITK:创建一个高斯分布
  10. c语言求n到m之间的素数和