0

这是TLV代码:</p>

30 3e 31 0b 30 09 06 03 55 04 06 13 02 50 4c 31 1b 30 19 06 03 55 04 0a 13 12 
55 6e 69 7a 65 74 6f 20 53 70 2e 20 7a 20 6f 2e 6f 2e 31 12 30 10 06 03 55 04
03 13 09 43 65 72 74 75 6d 20 43 41  

在此处输入图像描述

从这个图中,我们可以知道如何判断一个TLV结构是否嵌套。那么,如何解析嵌套的TLV结构。</p>

4

1 回答 1

1

如果您只想在问题中显示值,只需将其复制并粘贴到https://asn1.io/asn1playground/(解码选项卡)

OSS Nokalva TLV Print Utility  Version 8.6.1
Copyright (C) 1997-2021 OSS Nokalva, Inc.  All rights reserved.


30 3E
  31 0B
    30 09
      06 03 550406
      13 02 504C
  31 1B
    30 19
      06 03 55040A
      13 12 556E697A65746F2053702E207A206F2E6F2E
  31 12
    30 10
      06 03 550403
      13 09 43657274756D204341

如果您想编写一个执行此操作的程序,您需要知道如何读取标签以及如何读取长度(这不是直截了当)......您可以阅读 x690 规范(https://www.itu .int/rec/T-REC-X.690-202102-I/en )

然后,您将编写一个重新输入函数,该函数读取您的 TLV 并在构造 T 时重新输入(意味着 V 本身就是一个 TLV)

这里的 Java 示例:https ://github.com/yafred/asn1-tool/blob/master/runtime/src/main/java/com/yafred/asn1/runtime/BERDumper.java

我相信你可以在 python 中轻松地做同样的事情(毫无疑问你可以发现它已经完成了)

于 2021-11-04T09:58:30.130 回答