解析 ASN1格式0x80 问题
解析 ASN1
0x80 问题
所有X509证书都用一种 ASN1
格式,其为一种嵌套储存格式。ASN1
规则繁琐,此文不说明,可以研究此链接。
本文主要说明 0x80 问题,同事问起这问题,一时想不起来,现在在此备份。
所有ASN1格式都是0x30开头,表示ASN1 tag
;0x82
用来表示03 C2
的长度,先搁置;而 03 C2 其用来表示后面数据长度,如下所示。
30 82 03 C2 <...>
所以 ASN1格式简单分为如下两种:
- tag, data
- len, data
再重新解析
tag data <..........................>
30 82 03 C2 <........................>
03 C2
是表示后面数据长度,而其为两个字符。需要标明它为两个字符,所以前面使用0x82
。
<len....> <data.....>
82 03 C2 <...>
有个疑问,为何不使用0x02,表示长度。我们改写为如下:
30 02 03 C2 <........................>
那会变如何解析。
- 0x30开头,表示`ASN1 tag`
- 没说明数据长度,所以0x02为0x30的数据。
- 0x03又被当为tag,0xC2为其数据
结论
- 如果长度为两个字符以上,需要加上长度的
长度
。 - 长度的
长度
需要OR 0x80,如0x7F | 0x80 = 0xF9 - 最大支持0x7F (127),因为ASN1解析会把0x80以上当长度的
长度
解析 ASN1格式0x80 问题相关推荐
- urlparse模块(专门用来解析URL格式)
# -*- coding: utf-8 -*- #python 27 #xiaodeng #urlparse模块(专门用来解析URL格式)#URL格式: #protocol ://hostname[: ...
- php获得帮助类数据_PHP解析xml格式数据工具类示例
本文实例讲述了PHP解析xml格式数据工具类.分享给大家供大家参考,具体如下: class ome_xml { /** * xml资源 * * @var resource * @see xml_par ...
- python中json模块_Python使用内置json模块解析json格式数据的方法
本文实例讲述了Python使用内置json模块解析json格式数据的方法.分享给大家供大家参考,具体如下: Python中解析json字符串非常简单,直接用内置的json模块就可以,不需要安装额外的模 ...
- XML系列之--解析电文格式的XML(二)
上一节介绍了XML的结构以及如何创建.讲到了XML可作为一种简单文本存储数据,把数据存储起来,以XML的方式进行传递.当接收到XML时,必不可少的就是对其进行解析,捞取有效数据,或者将第三方数据以节点 ...
- java jdom格式_Java全面解析XML格式串(JDOM解析)
搜索热词 Java全面解析XML格式串(JDOM解析) import java.io.IOException; import java.io.StringReader; import java.uti ...
- QT解析 JSON 格式的数据
QT解析 JSON 格式的数据 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON 采用完全独立于语言的文本格式,这些特性使 JSON 成为理想的数 ...
- javascript解析json格式的字符串,拼接后显示到表格中
知识点 解析json格式的字符串 拼接的HTML设置到tbody当中 加载json格式的对象 结果演示 html代码 <!DOCTYPE html> <html><hea ...
- 【pnglib】解析png格式的图像
解析png格式的图像 前言 鉴于有人收藏我07年写的博客,是关于解析png格式图像的那一篇.所以我打算再写一篇防止坑你们-- 1.图像的内存表示 反复说到计算机中只有二进制表示,那图像如何以二进制表示 ...
- C#深入解析Json格式内容
继上一篇<浅谈C#手动解析Json格式内容>我又来分析加入了一些功能让 这个解析类更实用 本章节最会开放我最终制作成功的Anonymous.Json.dll这个解析库 需要的拿走~ 功能继 ...
最新文章
- iOS App上架流程(2016详细版)
- C++ 在派生类中使用using声明改变基类成员的可访问性
- React开发(284):注意点击事件大小写
- 【HDU5299】Circles Game,圆的扫描线+树上删边游戏
- mysql libc.so.6_解决安装mysql动态库libstdc++.so.6、libc.so.6版本过低问题
- 【BP数据预测】基于matlab狼群算法优化BP神经网络数据预测【含Matlab源码 658期】
- 仿微信拼多多实训笔记
- 图书借阅系统软件测试实验报告,C 大作业--图书管理系统-实验报告.doc
- 服务器销售年终总结ppt模板,it运维工作总结ppt模板
- python中abbab什么意思_ABtest与Python代码-Go语言中文社区
- 一看就懂的保姆级教程:open vn设置 (亲测通过)
- ADB命令使用大全及使用原理
- golang中base64编码_golang中base64编码和解码
- 二维码(生成以及扫一扫)
- 为何vSAN需要至少2n+1台主机,来防止n台主机出现故障(FTT=n)?
- 交通运输大数据发展特点、政策、应用及趋势 | 交通运输部科学研究院黄莉莉
- 【DB宝3】在Docker中使用rpm包的方式安装Oracle 19c
- java 给pdf解密_PDF文件如何解密?分享一个简单的PDF解密方法
- [分享]linux架设BT Tracker服务器小记
- oem客户工程流程图_SFIS质量管理系统工作流程图
热门文章
- 如何成为一名优秀的老师?
- high-resolution image synthesis with latent diffusion models
- vs2015mfc编程c语言,计算机技术《VS2015_MFC编程入门》.pdf
- linux编译lapack,Linux下Lapack如何安装
- java searchview_Android SearchView搜索框组件的使用方法
- eclipse jsp工程右键没有run as选项
- UML--状态图的基本概念和作用
- arm64架构ubuntu18.04国内镜像源
- Unity 学习网站
- 国美金融贷款模块解析HTML,国美金融贷款支持网站链接