有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用java的Openssl asn1parse

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

我可以通过命令使用openssl来实现

openssl asn1parse -out outfile.der -in infile

同样的,有没有Java等价物?我尝试了许多ASN1库,但它们要么产生与openssl命令不同的结果,要么在初始化时遇到问题


共 (2) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

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

    如果想将Base64字符串解析为ASN1结构,可以使用BoncyCastle依赖项,其工作原理与上面的openssl命令相同

    请包括Bouncy Castle提供商depnedy,请访问https://mvnrepository.com/artifact/org.bouncycastle

    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);
        }
    }