首页 > 其他分享 >DER编码

DER编码

时间:2024-03-30 18:23:10浏览次数:19  
标签:编码 x30 x31 DER 30 20211108 hl 31

任务详情

  1. 参考附件中图书p120中7.1的实验指导,完成DER编码。

  2. 在Name实例中,将 countryName 改为 “CN”, organizationName 改为你的学号, commonName 改为你的姓名拼音。

  3. 使用以下命令: echo -n -e "编码" > 你的学号.der 然后使用 OpenSSL 的 asn1parse 工具分析编码的正确性。

  4. 提交编码过程文档(推荐使用 Markdown 格式)。

查看16进制编码

[openeuler@localhost Desktop]$ echo -n "CN" | od -tc -tx1
0000000   C   N
         43  4e
0000002
[openeuler@localhost Desktop]$ echo -n "20211108" | od -tc -tx1
0000000   2   0   2   1   1   1   0   8
         32  30  32  31  31  31  30  38
0000010
[openeuler@localhost Desktop]$ echo -n "yuzhenyang" | od -tc -tx1
0000000   y   u   z   h   e   n   y   a   n   g
         79  75  7a  68  65  6e  79  61  6e  67
0000012

image

43  4e
32  30  32  31  31  31  30  38
79  75  7a  68  65  6e  79  61  6e  67

计算对应编码内容

countryName

31 0B 30 09 06 03 55 04 06 13 02 43 4E

  1. 31 0B:这是一个ASN.1的SEQUENCE的起始标记,后面跟着长度为 0x0B(11)个字节的内容。
  2. 30 09:又一个ASN.1的SEQUENCE的起始标记,后面跟着长度为 0x09(9)个字节的内容。
  3. 06 03 55 04 06:这是一个表示 "countryName" 的OID(对象标识符)。
  4. 13 02:这个字段的长度为 0x02(2)个字节。
  5. 43 4E:这是十六进制编码的数据。解码后为 "CN",代表 "Country Name",通常用于指代国家名称。
  6. 所以,这段编码表示了一个 "Country Name" 字段,其值为 "CN",即"国家名称"字段的值为"CN"。

organizationName

31 11 30 0F 06 03 55 04 0A 13 08 32 30 32 31 31 31 30 38

  1. 31 11:这是一个ASN.1的SEQUENCE的起始标记,后面跟着长度为 0x11(17)个字节的内容。
  2. 30 0F:又一个ASN.1的SEQUENCE的起始标记,后面跟着长度为 0x0F(15)个字节的内容。
  3. 06 03 55 04 0A:这是一个表示 "organizationName" 的OID(对象标识符)。
  4. 13 08:这个字段的长度为 0x08(8)个字节。
  5. 32 30 32 31 31 31 30 38:这是十六进制编码的数据。解码后为 "20211108"。
  6. 因此,这段编码表示了一个 "Organization Name" 字段,其值为 "20211108",即"组织名称"字段的值为"20211108"。

commonName

31 13 30 11 06 03 55 04 03 12 0A 79 75 7a 68 65 6e 79 61 6e 67

  1. 31 13:这是一个ASN.1的SEQUENCE的起始标记,后面跟着长度为 0x13(19)个字节的内容。
  2. 30 11:又一个ASN.1的SEQUENCE的起始标记,后面跟着长度为 0x11(17)个字节的内容。
  3. 06 03 55 04 03:这是一个表示 "commonName" 的OID(对象标识符)。
  4. 12 0A:这个字段的长度为 0x0A(10)个字节
  5. 79 75 7a 68 65 6e 79 61 6e 67:这是十六进制编码的数据。解码后为 "yuzhenyang"。
  6. 因此,这段编码表示了一个 "Common Name" 字段,其值为 "yuzhenyang",即"通用名称"字段的值为"yuzhneyang"。

验证

验证命令:openssl asn1parse -inform der -in ./20211108.der

countryName

echo -n -e "\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x4E" >> 20211108.der

organizationName

echo -n -e "\x31\x11\x30\x0F\x06\x03\x55\x04\x0A\x13\x08\x32\x30\x32\x31\x31\x31\x30\x38" >> 20211108.der

commonName

echo -n -e "\x31\x13\x30\x11\x06\x03\x55\x04\x03\x12\x0A\x79\x75\x7a\x68\x65\x6e\x79\x61\x6e\x67" >> 20211108.der

结果

[root@localhost 3.30]# echo -n -e "\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x4E"

 >> 20211108.der
[root@localhost 3.30]# echo -n -e "\x31\x11\x30\x0F\x06\x03\x55\x04\x0A\x13\x08\x32\x30\x32\x31\x31\x31\x30\x38" >> 20211108.der
[root@localhost 3.30]# echo -n -e "\x31\x11\x30\x0F\x06\x03\x55\x04\x0A\x13\x08\x32\x30\x32\x31\x31\x31\x30\x38" >> 20211108.der
[root@localhost 3.30]# openssl asn1parse -inform der -in ./20211108.der
    0:d=0  hl=2 l=  11 cons: SET               
    2:d=1  hl=2 l=   9 cons: SEQUENCE          
    4:d=2  hl=2 l=   3 prim: OBJECT            :countryName
    9:d=2  hl=2 l=   2 prim: PRINTABLESTRING   :CN
   13:d=0  hl=2 l=  17 cons: SET               
   15:d=1  hl=2 l=  15 cons: SEQUENCE          
   17:d=2  hl=2 l=   3 prim: OBJECT            :organizationName
   22:d=2  hl=2 l=   8 prim: PRINTABLESTRING   :20211108
   32:d=0  hl=2 l=  17 cons: SET               
   34:d=1  hl=2 l=  15 cons: SEQUENCE          
   36:d=2  hl=2 l=   3 prim: OBJECT            :organizationName
   41:d=2  hl=2 l=   8 prim: PRINTABLESTRING   :20211108

image

标签:编码,x30,x31,DER,30,20211108,hl,31
From: https://www.cnblogs.com/yuzhenyang/p/18105834

相关文章

  • blender 常用功能和快捷键
    C键圆形选择器菜单:选择->反选反选模型中未选择的顶点 权重模式,权重光滑 仅显示正面,剔除背面,线框  ......
  • 20211105李宜时DER
    作业内容:参考附件中图书p120中7.1的实验指导,完成DER编码Name实例中,countryName改为“CN”,organizationName-"你的学号"commoaName="你的姓名拼音"用echo-n-e"编码">你的学号.der中,用OpenSSLasn1parse分析编码的正确性提交编码过程文档(推荐markdown格式)具体过程......
  • 隐藏ASP.NET MVC的版本信息,使其不在HTTP Header中显示
    隐藏ASP.NETMVC的版本信息,使其不在HTTPHeader中显示。一、隐藏:X-AspNetMvc-Version在Global.asax文件的Application_Start方法中添加:1MvcHandler.DisableMvcResponseHeader= true;二、移除Header中的Server在Global.asax文件中添加:12345......
  • 【编码器应用】第一节-编码器从从原理到应用详解
    概述:本文内容为常用电机编码器概览,将为您重点介绍编码器大致分类,以及增量编码器与西门子设备的配置连接方式。编码器简介编码器是利用LED光源发出的透射光对码盘进行光电扫描,光电元件接收编码器轴旋转时产生的明暗交替变化,将电机轴的转速和位置转化为电信号反馈给PLC或者驱......
  • 第16期 Double Commander 开源免费的Total Commander替代型【体验100款文件管理工具】
     体验背景:我们正在做一款文件版本管理软件,追光几何(追光几何),期待以最无感的方式,解决新一代工程师文件管理的问题,让大家有更多时间去做快乐和有成就感的事情。所以打算体验100款文件管理软件,来取长补短。真实1h体验DoubleCommander是一款开源的跨平台文件管理软件,灵感来源......
  • 网络编程:百度api实现地理编码与逆地理编码
    1.使用geopy库实现百度地理位置编码功能:2.使用requests库实现百度地理位置编码功能:3.使用geocoder库实现百度地理位置编码功能:4.使用http.client库实现百度地理位置编码功能:5.使用socket库实现百度地理位置编码功能:6.使用学习的四个库实现百度地理位置逆编码功能:......
  • atcoder beginner 346 题解
      看到别人的视频讲解 AtCoderBeginnerContest346A至G題讲解bydreamoon C如果用sort写,那么再从小到大遍历也需要写几行#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<cstdbool>#include<string>#include<......
  • URL编码:原理、应用与安全性
    在网络世界中,URL(统一资源定位符)是我们访问网页、发送请求的重要方式。然而,URL中包含的特殊字符、不安全字符以及保留字符可能会导致传输错误或安全风险。为了解决这些问题,URL编码应运而生。本文将从概念介绍、编码规则、编码与解码、常见应用场景、历史演变、安全性考虑、局......
  • 详解DROO论文中的order-preserving quantization method(保序量化方法)
    ​一、论文概述1.原文GitHub链接DeepReinforcementLearningforOnlineComputationOffloadinginWirelessPoweredMobile-EdgeComputingNetworks2.原文大意提出了一种深度强化学习方法解决了边缘计算任务卸载决策和资源分配问题。整体分为两大部分:其中第一部......
  • WebApplicationBuilder
    WebApplicationBuilder类(Microsoft.AspNetCore.Builder)|MicrosoftLearnWebApplicationBuilder属性Configuration要撰写的应用程序的配置提供程序的集合。这对于添加新的配置源和提供程序很有用。Environment提供有关应用程序正在运行的Web托管环境的信息......