【问题标题】:Openssl asn1parse using java使用java打开ssl asn1parse
【发布时间】:2013-08-23 10:44:18
【问题描述】:

我必须 ASN1 解析输入的 base64 编码字符串

我可以通过命令使用 openssl 来做到这一点

openssl asn1parse -out outfile.der -in infile

是否有相同的 Java 等效项?我尝试了许多 ASN1 库,但它们要么产生与 openssl 命令不同的结果,要么我在初始化时遇到问题。

【问题讨论】:

  • 我也在寻找这个确切问题的答案。

标签: java openssl bouncycastle asn.1


【解决方案1】:

您可以解码证书,从中创建一个 java.security.cert.X509Certificate 实例(使用 java.security.cert.CertificateFactory)并使用 getter。希望这会有所帮助。

【讨论】:

    【解决方案2】:

    这是一个老问题,但答案可能对其他人有用。

    如果您想将 Base64 字符串解析为 ASN1 结构,您可以使用 BoncyCastle 依赖项,并且应该与上面的 openssl 命令相同。

    请在https://mvnrepository.com/artifact/org.bouncycastle上找到Bouncy Castle Provider depnedy

    Java 代码:

    ASN1Sequence seq = (ASN1Sequence) DERSequence.fromByteArray(Base64.decode(base64String.getBytes()));
    int n = seq.size();
    for (int i = 0; i < n; i++) {
        ASN1Encodable obj = seq.getObjectAt(i);
        if (obj instanceof DEROctetString) {
            System.out.println(new String(((DEROctetString) obj).getOctets()));
        } else {
            System.out.println(obj);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-08
      • 2021-11-08
      • 2020-09-29
      • 1970-01-01
      • 2012-10-16
      相关资源
      最近更新 更多