• 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

  • 相关阅读:
    分享 35 套精美的 PSD 图标素材
    策略模式
    步步为营 .NET三层架构解析 二、数据库设计
    TFS安装与管理
    MMN实用架构过程概览
    Mvc学习
    三层架构[转]
    left join 和 left outer join 的区别
    300万条记录 like 和 charindex 函数性能比较
    jQuery插件InputLimitor实现文本框输入限制字数统计
  • 原文地址:https://www.cnblogs.com/mingzhang/p/9098911.html
Copyright © 2020-2023  润新知