如何解码ASN1字节来提取信息?

时间:2015-02-28 13:47:26

标签: java decode asn.1

我正在尝试使用PER编码解码ASN1,我有输入Hexa字符串作为示例:        “04 39 04 9E B7 DB 60 50 10 0D 0A 90 D8 24 B0 0A 76 AB 9A”    我想从这个输入信息中提取出来:

 UL-CCCH-Message

message: cellUpdate (0)

    cellUpdate

        u-RNTI

            srnc-Identity: 0e40 [bit length 12, 4 LSB pad bits, 0000 1110   0100 .... decimal value 228]

            s-RNTI: 127ad0 [bit length 20, 4 LSB pad bits, 0001 0010  0111 1010  1101 .... decimal value 75693]

        startList: 4 items

            Item 0

                STARTSingle

                    cn-DomainIdentity: ps-domain (1)

                    start-Value: b6c0a0 [bit length 20, 4 LSB pad bits, 1011 0110  1100 0000  1010 .... decimal value 748554]

任何人都知道如何用java做到这一点?

2 个答案:

答案 0 :(得分:1)

使用现有的库而不是编写自己的库。考虑http://harmony.apache.org/subcomponents/classlibrary/asn1_framework.html

答案 1 :(得分:0)

您需要将ASN.1规范提供给ASN.1编译器。 ASN.1编译器将生成编码器/解码器以将二进制数据转换为解码的Java对象。您可以在http://www.itu.int/en/ITU-T/asn1/Pages/Tools.aspx找到一个很好的ASN.1 / Java编译器列表(一些是免费的,一些是商业的)。