【问题标题】:How to convert Java Object to ASN.1 stream?如何将 Java 对象转换为 ASN.1 流?
【发布时间】:2011-02-21 14:47:05
【问题描述】:

我想知道是否有一种简单的方法可以将 java 对象转换为 ASN.1 字节流。提前致谢。

【问题讨论】:

    标签: java asn.1


    【解决方案1】:
    【解决方案2】:

    我使用http://bnotes.sourceforge.net/,它对我来说非常有用。非常简单好用,看development guide就懂了。

    【讨论】:

    • 我无法运行 bnotes,出现错误:线程“main”中的异常 java.lang.NoClassDefFoundError: org/bn/coders/IASN1PreparedElement at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source ) 在 java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) ...
    • 取决于您尝试做什么,可以更具体吗?确实先写了一个asn1文件,你编译了吗,你的错误出现在哪里?与此同时,我更改为支持更多 ASN1 符号的商业解决方案 asn1c。
    【解决方案3】:

    也许您首先需要了解 ASN.1 是什么,因为您说您是新手。

    使用 ASN.1,您可以指定可用于形成消息的类型。当这与一组定义的编码规则相结合时,您就拥有了构成消息的字节的完整规范。

    数据绑定工具(例如我的公司,Objective Systems,销售)可以采用 ASN.1 规范,然后生成 Java 类,这些类对 ASN.1 中定义的类型进行建模,其中包括对建模对象进行编码/解码的方法数据,根据一组定义的编码规则(BER,PER),到字节。

    谈论获取任意 Java 对象并将其转换为 ASN.1 字节流实际上没有任何意义,因为您缺少两个关键部分:指定消息中的内容的 ASN.1 和选择的编码规则。理论上,我想有人可以提出一个标准,根据该标准将任意 Java 对象序列化为 ASN.1,但我不知道这一点,这与数据绑定工具所做的会有很大不同。

    我希望我说得通。

    【讨论】:

    • 是的。可能题主想问的是如何将Java类转换成ASN.1文件。
    【解决方案4】:

    我至少从下面看到了 java 库

    1. http://www.chaosinmotion.com/asn1.m
    2. bouncycastle

    【讨论】:

    • bouncycastle 示例:new ASN1OutputStream().writeObect();
    • 这给了我一个“object not asn1encodable”异常
    • 我尝试使用第一个库并最终得到如下结果:code (SEQUENCE { OCTETSTRING 313030 PrintableString 'I am a String' INTEGER 123 BOOLEAN TRUE })code Im new to ASN1,现在我想知道我的通信伙伴如何知道我向他发送了什么样的 ob 对象
    猜你喜欢
    • 1970-01-01
    • 2011-11-04
    • 2022-01-23
    • 1970-01-01
    • 2016-05-02
    • 2011-05-26
    • 1970-01-01
    • 2023-03-17
    • 2012-03-05
    相关资源
    最近更新 更多