我必须 ASN1parse 输入的 base64 编码字符串
我可以通过命令使用 openssl 来做到这一点
openssl asn1parse -out outfile.der -in infile
是否有相同的Java等效项?我尝试了许多 ASN1 库,但它们要么产生与 openssl 命令不同的结果,要么我在初始化时遇到问题。
我必须 ASN1parse 输入的 base64 编码字符串
我可以通过命令使用 openssl 来做到这一点
openssl asn1parse -out outfile.der -in infile
是否有相同的Java等效项?我尝试了许多 ASN1 库,但它们要么产生与 openssl 命令不同的结果,要么我在初始化时遇到问题。
您可以解码证书,从中创建一个 java.security.cert.X509Certificate 实例(使用 java.security.cert.CertificateFactory)并使用 getter。希望这可以帮助。
这是一个老问题,但答案可能对其他人有用。
如果您想将 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);
}
}