dfile.encoding=utf-8 乱码_OrdosTF格式是什么格式

dfile.encoding=utf-8 乱码_OrdosTF格式是什么格式解析ASN10x80问题所有X509证书都用一种ASN1格式,其为一种嵌套储存格式。ASN1规则繁琐,此文不说明,可以研究此链接。本文主要说明0x80问题,同事问起这问题,一时想不起来,现在在此备份。所有ASN1格式都是0x30开头,表示ASN1tag;0x82用来表示03C2的长度,先搁置;而03C2其用来表示后面数据长度,如下所示。308203C

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

解析 ASN1 0x80 问题

所有X509证书都用一种 ASN1 格式,其为一种嵌套储存格式。ASN1 规则繁琐,此文不说明,可以研究此链接
本文主要说明 0x80 问题,同事问起这问题,一时想不起来,现在在此备份。

所有ASN1格式都是0x30开头,表示ASN1 tag0x82用来表示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以上当长度的长度
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194605.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MySQL 字符集 注意事项

    MySQL 字符集 注意事项utf8 unicode ci 与 utf8 general ci 区别 utf8 unicode ci 和 utf8 general ci 对中英文来说没有实质的差别 utf8 general ci 校对速度快 但准确度稍差 utf8 unicode ci 准确度高 但校对速度稍慢 若数据库中有德语 法语或者俄语需求 需使用 utf8 unicode ci 其他情况用 utf8 general ci 即可 如果你想使用 gb2312 编码 那么建议你使用 latin1 作为数据表的默认字符集 这样就能直

    2025年12月12日
    5
  • 在VmWare Workstation 6.5上安装Esx 3.5 U3之二

    在VmWare Workstation 6.5上安装Esx 3.5 U3之二

    2021年7月29日
    79
  • SpringBoot自定义starters

    SpringBoot自定义startersSpringBoot自定义starters1、简介2、如何自定义starter1、简介SpringBoot最强大的功能就是把我们常用的场景 抽象成一个个starter(场景启动器),我们通过引入springBoot为我们提供这些场景启动器,我们再进行少量的配置就能使用相应的功能。但是,SpringBoot不能包含所有的场景,经常需要我们自定义starter,来简化我们对springBoot的使用。2、如何自定义starter…

    2025年8月14日
    3
  • VI退出 退出VIM 适用新手

    VI退出 退出VIM 适用新手今天看了篇文章,说10万人中就有1个人不知道怎么退出VIM,我第一次用的时候也不知道怎么退出。一、退出方法如下::q–退出(这是:quit的缩写):q!–不保存退出(这是:quit!的缩写):wq–写入文件并退出(这是:writequit的缩写):wq!–(如果文件只有读权限)写入并退出;(如果文件没有写权限,强制写):x–类似于:wq

    2022年6月10日
    88
  • 可迭代对象 python_列表是可迭代对象吗

    可迭代对象 python_列表是可迭代对象吗引出问题:​如下面所示,存在一个类,并且产生了一个对象,现在想用for循环实现对象的迭代,结果报错了点击(此处)折叠或打开– coding: utf-8 –“””演示一个类是不可以迭代的结果存在报错信息 说明 A对象不是一个可以迭代的对象for i in A:TypeError: ‘Students’ object is not iterable“””class Students():def init(self):self.names = list()def add(self,

    2022年8月8日
    8
  • ingress什么意思_k8s kong

    ingress什么意思_k8s kongk8sIngress介绍Http代理Https代理Ingress介绍我们已经知道,Service对集群之外暴露服务的主要方式有两种:NodePort和LoadBalancer,但是这两种方式,都有一定的缺点:NodePort方式的缺点是会占用很多集群机器的端口,那么当集群服务变多的时候,这个缺点就愈发明显。LoadBalancer的缺点是每个Service都需要一个LB,浪费,麻烦,并且需要kubernetes之外的设备的支持。基于这种现状,kubernetes提供了Ingress资源对象,I

    2022年8月9日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号