gpt4 book ai didi

Java - 将十六进制字符串解析为 ASN.1 格式

转载 作者:行者123 更新时间:2023-12-01 16:45:38 30 4
gpt4 key购买 nike

我尝试将我的十六进制字符串解码为 ASN.1 结构(标记 - 长度 - 值),如下页:https://asn1.io/asn1playground/但我被 Bouncy CaSTLe 库困住了。有什么方法可以解决我的问题吗?

My hex string values = "100101110D48434D432D46492D30312D3031120131130130010A464930303030303030331D0614050D0A3A04"

我需要解码结果如下:

tag 1: 10 - lenght 1: 01 - value 1: 01
tag 2: 11 - lenght 2: 0D - value 2: 48434D432D46492D30312D3031
tag 1: 12 - lenght 1: 01 - value 1: 31
...

最佳答案

可以使用我的runtime的源码lib(并修改它以达到您想要的确切结果)

现在它的工作原理是这样的:

1/从 https://github.com/yafred/asn1-tool/releases 下载 asn1-runtime.jar

2/编译以下类,并在类路径中添加 asn1-runtime.jar

package asn1;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.PrintWriter;

import com.yafred.asn1.runtime.BERDumper;

public class Dump {

public static void main(String[] args) throws IOException {
String values = "100101110D48434D432D46492D30312D3031120131130130010A464930303030303030331D0614050D0A3A04";


// dump TLV form
ByteArrayInputStream bufferIn = new ByteArrayInputStream(BERDumper.bytesFromString(values));
new BERDumper(new PrintWriter(System.out)).dump(bufferIn);

}

}

3/运行它(使用asn1-runtime.jar)

T: 10 (PRIMITIVE_UNIVERSAL_16)
L: 1
V: 01
T: 11 (PRIMITIVE_UNIVERSAL_17)
L: 13
V: 48 43 4d 43 2d 46 49 2d 30 31 2d 30 31
T: 12 (PRIMITIVE_UNIVERSAL_18)
L: 1
V: 31
T: 13 (PRIMITIVE_UNIVERSAL_19)
L: 1
V: 30
T: 01 (PRIMITIVE_UNIVERSAL_1)
L: 10
V: 46 49 30 30 30 30 30 30 30 33
T: 1d (PRIMITIVE_UNIVERSAL_29)
L: 6
V: 14 05 0d 0a 3a 04

如果您没有找到其他任何东西,这可能是一个好的开始......

关于Java - 将十六进制字符串解析为 ASN.1 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61784043/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com