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

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

解析 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。

 
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以上当长度的长度

编程小号
上一篇 2025-08-01 15:46
下一篇 2025-05-31 22:27

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/126693.html