base64证书转certificate工具类

需引入bcprov-jdk15on-1.68包

package com.reach.platform.commons.core.utils;

import org.bouncycastle.asn1.ASN1InputStream;
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
import org.bouncycastle.asn1.ASN1Sequence;
import org.bouncycastle.asn1.x509.Extension;
import org.bouncycastle.asn1.x509.Extensions;
import sun.misc.BASE64Decoder;

import java.io.ByteArrayInputStream;
import java.security.cert.Certificate;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.text.SimpleDateFormat;

public class CertParseUtil {

    public static org.bouncycastle.asn1.x509.Certificate getCert(String base64cert) {
        try {
            byte[] buffer = new BASE64Decoder().decodeBuffer(base64cert);
            ByteArrayInputStream bIn = new ByteArrayInputStream(buffer);
            ASN1InputStream dIn = new ASN1InputStream(bIn);
            ASN1Sequence seq = (ASN1Sequence) dIn.readObject();
            org.bouncycastle.asn1.x509.Certificate cert = org.bouncycastle.asn1.x509.Certificate.getInstance(seq);
            return cert;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    public static String getVersion(org.bouncycastle.asn1.x509.Certificate cert) {
        return String.valueOf(cert.getVersion());
    }

    public static String getSerialNumber(org.bouncycastle.asn1.x509.Certificate cert) {
        return cert.getSerialNumber().getValue().toString(16);
    }

    public static String getSignatureAlgorithm(org.bouncycastle.asn1.x509.Certificate cert) {
        return cert.getSignatureAlgorithm().getAlgorithm().getId();
    }

    public static String getIssuer(org.bouncycastle.asn1.x509.Certificate cert) {
        return cert.getIssuer().toString();
    }

    public static String getStartDate(org.bouncycastle.asn1.x509.Certificate cert) {
        String num = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(cert.getStartDate().getDate());
        return num;
    }

    public static String getEndDate(org.bouncycastle.asn1.x509.Certificate cert) {
        String num = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(cert.getEndDate().getDate());
        return num;
    }

    public static String getSubject(org.bouncycastle.asn1.x509.Certificate cert) {
        return cert.getSubject().toString();
    }

    public static String getPK(org.bouncycastle.asn1.x509.Certificate cert) {
        try {
            String pk = cert.getSubjectPublicKeyInfo().getPublicKeyData().toString();
            if (getSignatureAlgorithm(cert).equals("1.2.156.10197.1.501")) {
                pk = pk.substring(7, pk.length());
            } else {
                pk = pk.substring(9, pk.length());
            }
            return pk;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    public static byte[] getExtensionBytes(String oid, Extensions exts) {
        if (exts != null) {
            Extension ext = exts.getExtension(new ASN1ObjectIdentifier(oid));
            if (ext != null) {
                return ext.getExtnValue().getOctets();
            }
        }
        return new byte[0];
    }

    public static String getOnlyCode(org.bouncycastle.asn1.x509.Certificate cert) {
        String id = cert.getSignatureAlgorithm().getAlgorithm().getId();
        return new String(getExtensionBytes("1.2.156.10197.1.501", cert.getTBSCertificate().getExtensions()));
    }

    public static String getDN(String subject, String item) {
        String str = "";
        String[] sdn = subject.split(",");
        for (int ii = 0; ii < sdn.length; ii++) {
            String[] stmp = sdn[ii].split("=");
            if (stmp[0].trim().equalsIgnoreCase(item)) {
                str = stmp[1].trim();
                return str;
            }
        }
        return str;
    }

    public static X509Certificate getRSACert(String base64cert) {
        try {
            base64cert = "-----BEGIN CERTIFICATE-----\n" + base64cert;
            base64cert = base64cert + "\n-----END CERTIFICATE-----";
            ByteArrayInputStream stream = new ByteArrayInputStream(base64cert.getBytes());
            CertificateFactory cf = CertificateFactory.getInstance("X.509");
            Certificate c1 = cf.generateCertificate(stream);
            X509Certificate cert = (X509Certificate) c1;
            return cert;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    public static String getVersion(X509Certificate cert) {
        return String.valueOf(cert.getVersion());
    }

    public static String getSerialNumber(X509Certificate cert) {
        return cert.getSerialNumber().toString(16);
    }

    public static String getSignatureAlgorithm(X509Certificate cert) {
        return cert.getSigAlgOID();
    }

    public static String getIssuer(X509Certificate cert) {
        return cert.getIssuerDN().toString();
    }

    public static String getStartDate(X509Certificate cert) {
        String num = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(cert.getNotBefore());
        return num;
    }

    public static String getEndDate(X509Certificate cert) {
        String num = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(cert.getNotAfter());
        return num;
    }

    public static String getSubject(X509Certificate cert) {
        return cert.getSubjectDN().toString();
    }

    public static String getOnlyCode(X509Certificate cert) {
        return cert.getExtensionValue("1.2.156.112578.1").toString();
    }

    public static void main(String[] args) {
        //sm2公钥base64
//        String base64Code = "MIIC0zCCAnegAwIBAgIMYGcAAAEygQbJTT0ZMAwGCCqBHM9VAYN1BQAwYTELMAkGA1UEBhMCQ04xDzANBgNVBAgMBmZ1amlhbjEtMCsGA1UECgwkRnVqaWFuIERpZ2l0YWwgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRIwEAYDVQQDDAlGSkNBRkNTTTIwHhcNMjEwNDA3MTYwMDAwWhcNMjEwNDA5MTU1OTU5WjAjMQswCQYDVQQGEwJDTjEUMBIGA1UEAwwL6buE5pONLTA4XzEwWTATBgcqhkjOPQIBBggqgRzPVQGCLQNCAAQra2omRFYO3d09/w3Lao3EAUXn0GmzqVOlqInkHJx0yojFEJzrZO9FY9jA55nVjY6mFpxGSNOcYC/zWC3iomNMo4IBTzCCAUswDAYDVR0TBAUwAwEBADATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMCAMAwEQYJYIZIAYb4QgEBBAQDAgCAMCYGCCqBHNAUBAEBBBozNTA3ODExOTkwMTEyMDAwMTRzaXQtMDhfMTAfBgNVHSMEGDAWgBSQOydnpjCYvWgkB3AklcH7MmogITBOBgNVHR8ERzBFMEOgQaA/hj1odHRwOi8vMjAyLjEwOS4xOTQuMjMwOjg4ODAvZG93bmxvYWQvRkpDQUZDU00ycGFydDRncm91cDguY3JsME4GCCsGAQUFBwEBBEIwQDA+BggrBgEFBQcwAoYyaHR0cDovLzIwMi4xMDkuMTk0LjIzMDo4ODgwL2Rvd25sb2FkL0ZKQ0FGQ1NNMi5jZXIwHQYDVR0OBBYEFLMSG2TplEpiEChhnMyMxHLX72cyMAwGCCqBHM9VAYN1BQADSAAwRQIgc0dszjYko7v4yYvThMp/yUZ8O2J0NngzqPrbdsvMeZICIQCkUvTrUZOPtIhA5t/ZJISlv1ylWIQR7wA66Clj7IEcvg==";
//        String base64Code = "MIIENTCCA9mgAwIBAgIQaeIAAAEIWbXgRIngs6+C0zAMBggqgRzPVQGDdQUAMGIxCzAJBgNVBAYTAkNOMRIwEAYDVQQIDAnnpo/lu7rnnIExLTArBgNVBAoMJEZ1amlhbiBEaWdpdGFsIENlcnRpZmljYXRlIEF1dGhvcml0eTEQMA4GA1UEAwwHRkpDQVNNMjAeFw0yMTAxMTIxNjAwMDBaFw0yMjAxMTMxNTU5NTlaMF4xCzAJBgNVBAYTAkNOMRIwEAYDVQQIDAnnpo/lu7rnnIExEjAQBgNVBAcMCeemj+W3nuW4gjEnMCUGA1UEAwwe5qyn6Ziz56uL77yI5rWL6K+V5LiT55So5LiJ77yJMFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAER55SlRkM5Xb0u0fjSL//nG/XDNxVChT1NLtqZN/hEVDQJDaj7tGUlIdQchXgliX/Z/W+kvfqD6hIqirwcznmpaOCAnEwggJtMAwGA1UdEwQFMAMBAQAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMAsGA1UdDwQEAwIAwDAiBgcqgRyG70IBBBc2MDE2QDIwOTRAMDAwMDAxMjMzNDY2MzAeBggqgRzQFAQBAQQSMzUwMTAyMTk4NzAyMjYyODFYMB8GA1UdIwQYMBaAFNOyMO38peg+Oq5so8pPvMgN4yZ1MIHSBgNVHR8EgcowgccwgcSggcGggb6GgY5sZGFwOi8vMjAyLjEwOS4xOTQuMjI5OjM4OS9DTj1GSkNBU00yLENOPUZKQ0FTTTIsIE9VPUNSTERpc3RyaWJ1dGVQb2ludHMsIGM9Y24/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdD9iYXNlP29iamVjdGNsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50hitodHRwOi8vMjAyLjEwOS4xOTQuMjI5L2Rvd25sb2FkL0ZKQ0FTTTIuY3JsMIHXBggrBgEFBQcBAQSByjCBxzCBiwYIKwYBBQUHMAKGf2xkYXA6Ly8yMDIuMTA5LjE5NC4yMjk6Mzg5L0NOPUZKQ0FTTTIsQ049RkpDQVNNMiwgT1U9Y0FDZXJ0aWZpY2F0ZXMsIGM9Y24/Y0FDZXJ0aWZpY2F0ZT9iYXNlP29iamVjdENsYXNzPWNlcnRpZmljYXRpb25BdXRob3JpdHkwNwYIKwYBBQUHMAKGK2h0dHA6Ly8yMDIuMTA5LjE5NC4yMjkvZG93bmxvYWQvRkpDQVNNMi5jZXIwHQYDVR0OBBYEFGXFp+wmBkDulfWncILAJ0xxV1o3MAwGCCqBHM9VAYN1BQADSAAwRQIgfByWDh5cHODlx50S+OsQ32JWZdXhu6X5H38sBH+kXRkCIQDj9IfdLP4GXN5Cvl7FZj/UZjOMQS4/D2G4SFx3VvLOAA==";
        //rsa公钥base64
        String base64Code = "MIIFODCCBCCgAwIBAgIQA/8AAAAiUQeb5I8J2sXIITANBgkqhkiG9w0BAQUFADBcMQswCQYDVQQGEwJDTjEPMA0GA1UECAwGZnVqaWFuMS0wKwYDVQQKDCRGdWppYW4gRGlnaXRhbCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxDTALBgNVBAMMBEZKQ0EwHhcNMTgwNzAyMTYwMDAwWhcNMTkwNzAzMTU1OTU5WjB/MQswCQYDVQQGEwJDTjESMBAGA1UECAwJ56aP5bu655yBMRIwEAYDVQQHDAnnpo/lt57luIIxSDBGBgNVBAMMP+emj+W7uueRnuacr+S/oeaBr+enkeaKgOaciemZkOWFrOWPuO+8iOS4muWKoeS4k+eUqOS6jOWNgeWFq++8iTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1jc4lO0jGQSU8OQAHOZZmZCum0H0hOqop8HJkDmbmPLYD3ZItbgaDZyeyHAj9FGuwRCzTpDA3iP4DULTMpfOwMJH9QKQvjxYFluQEpOIq9Bxkc7cIddjScVYb01cSV/XOT9kBKhkNGCMvXKoMdtLat6oyv9OAiPBT9sq9W3YS4MCAwEAAaOCAlUwggJRMAwGA1UdEwQFMAMBAQAwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgDoMCIGByqBHIbvQgEEFzYwMTZAMTA1OUAwMDAwMDEwNDI4NDI0MB4GCCqBHNAUBAEDBBI5MTM1MDEwMjA1MjMwNzE1MUQwHwYDVR0jBBgwFoAU+zBVFXwtgR+F1qdDcLDTGLR0qKowgckGA1UdHwSBwTCBvjCBu6CBuKCBtYaBiGxkYXA6Ly8yMDIuMTA5LjE5NC4yMjk6Mzg5L0NOPUZKQ0EsQ049RkpDQSwgT1U9Q1JMRGlzdHJpYnV0ZVBvaW50cywgYz1jbj9jZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0P2Jhc2U/b2JqZWN0Y2xhc3M9Y1JMRGlzdHJpYnV0aW9uUG9pbnSGKGh0dHA6Ly8yMDIuMTA5LjE5NC4yMjkvZG93bmxvYWQvRkpDQS5jcmwwgc4GCCsGAQUFBwEBBIHBMIG+MIGFBggrBgEFBQcwAoZ5bGRhcDovLzIwMi4xMDkuMTk0LjIyOTozODkvQ049RkpDQSxDTj1GSkNBLCBPVT1jQUNlcnRpZmljYXRlcywgYz1jbj9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2VydGlmaWNhdGlvbkF1dGhvcml0eTA0BggrBgEFBQcwAoYoaHR0cDovLzIwMi4xMDkuMTk0LjIyOS9kb3dubG9hZC9GSkNBLmNlcjAdBgNVHQ4EFgQUqJHG6K43u3PtSmB/uhkmIQ92hVYwDQYJKoZIhvcNAQEFBQADggEBANGQ4+Yk/o2W7wIt7LxMBls/zAdS3k4rVQ1945pijuroPK+isjnfRxRdFGsSSGA2QFYaaxqy2VPFVUbDKHBA0FqJza4XqN9oEnEM/fL8sxb4oBy5XgqDEb6rlkJQzqzfcTCMz7W3WJWMUYorNgX92DSSQNHbx3m5YUAXNtzEZdAEhh6Ki0JV3+x/pbrfnFdibqyCfshLc7y4neaRbMR32tDo5Hq5MtJwHUNwhCr4MKV+BIBWFryXCS9LYu0wOM8NyX3qBzbz32gxiB/gmIexdQnGDYQ4up3DAli5TYmH8iZfztJvCtsPpCjgzrbG7uQftwUBXs8svBKtoY8mnM7Oh30=";
        //String base64Code="MIIFXDCCBESgAwIBAgIQA/8AAAAevQzBkQiYiKosbzANBgkqhkiG9w0BAQUFADBcMQswCQYDVQQGEwJDTjEPMA0GA1UECAwGZnVqaWFuMS0wKwYDVQQKDCRGdWppYW4gRGlnaXRhbCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxDTALBgNVBAMMBEZKQ0EwHhcNMTcxMjE3MTYwMDAwWhcNMjAxMDA1MDIwMzI3WjCBwjELMAkGA1UEBhMCQ04xEjAQBgNVBAgMCeemj W7uuecgTESMBAGA1UEBwwJ56aP5bee5biCMRswGQYDVQQLDBI5MTM1MDEwMjA1MjMwNzE1MUQxJDAiBgNVBAsMG atpOivgeS5puS7heS9v eUqOS6jua1i ivlTFIMEYGA1UEAww/56aP5bu655Ge5pyv5L h5oGv56eR5oqA5pyJ6ZmQ5YWs5Y 477yI5rWL6K V5LiT55So5LqU5Y2B5LiD77yJMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDsjb08MO 1sxAfzs 85o0wLqEoLjr7vAZ/wRWpXkjA0gO/mUOhbmlJMxTuvlR633wjsm JnLcQ76MaXPdcv3mPYc6xNOw8nY8sqFx02C3X2t0HLqR0D W JxH5 su/yP8H2iOVx87ow4dnEc332PNe45fFywTSFBJ5EpzlQff7FwIDAQABo4ICNTCCAjEwDAYDVR0TBAUwAwEBADATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMCAOgwIgYHKoEchu9CAQQXNjAxNkAxMDU5QDAwMDAwMDk5OTIxNzYwHwYDVR0jBBgwFoAU zBVFXwtgR F1qdDcLDTGLR0qKowgckGA1UdHwSBwTCBvjCBu6CBuKCBtYaBiGxkYXA6Ly8yMDIuMTA5LjE5NC4yMjk6Mzg5L0NOPUZKQ0EsQ049RkpDQSwgT1U9Q1JMRGlzdHJpYnV0ZVBvaW50cywgYz1jbj9jZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0P2Jhc2U/b2JqZWN0Y2xhc3M9Y1JMRGlzdHJpYnV0aW9uUG9pbnSGKGh0dHA6Ly8yMDIuMTA5LjE5NC4yMjkvZG93bmxvYWQvRkpDQS5jcmwwgc4GCCsGAQUFBwEBBIHBMIG MIGFBggrBgEFBQcwAoZ5bGRhcDovLzIwMi4xMDkuMTk0LjIyOTozODkvQ049RkpDQSxDTj1GSkNBLCBPVT1jQUNlcnRpZmljYXRlcywgYz1jbj9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2VydGlmaWNhdGlvbkF1dGhvcml0eTA0BggrBgEFBQcwAoYoaHR0cDovLzIwMi4xMDkuMTk0LjIyOS9kb3dubG9hZC9GSkNBLmNlcjAdBgNVHQ4EFgQUV wNTZJd 1KNtnZUOVHEBi2UJhYwDQYJKoZIhvcNAQEFBQADggEBAMUWcW6QKjjM86WNYrIpgwsj1mhSgkDMiSAq1OnowOkHKxv/yWFLgq7x3LSoeH p5YWQfutVQmKCfu17PSaclwE8htLqOeg9XumtPoc87h4Lfrvn66SLwYf/RZh7XMLPycIaku7iF9kNRT83dzFKWdaA5l82iTccvG Tfdd7bXBpO3f/iM/neoQFgzBZlLvRPwzJhaeoffRqHOS2pVjbCC7Q1ljXAKL3vrYmebYdZ0kGlk1Vtd4FdGYkTSIjdVoLYiygGgLxiz0J3aL92b3uvMdb7qBSrX alDPHEJIHanlksfonmFD0OyLsr9sqj4BUi1 EaJkuEi8O3Bq8jkW dyc=";
        //String base64Code="MIIEHTCCA8GgAwIBAgIQA/cAAAAA1kDzVTR84pIUpTAMBggqgRzPVQGDdQUAMDQxCzAJBgNVBAYTAkNOMQ8wDQYDVQQIDAZmdWppYW4xFDASBgNVBAMMC3Rlc3RmamNhc20yMB4XDTE5MDgyMzA2MDUwOVoXDTIwMDgyMjE1NTk1OVowSTELMAkGA1UEBhMCQ04xEjAQBgNVBAgMCeemj+W7uuecgTESMBAGA1UEBwwJ56aP5bee5biCMRIwEAYDVQQDDAnnvZflsJE1XzEwWTATBgcqhkjOPQIBBggqgRzPVQGCLQNCAATPL7DmeuHnm8NOypzWA4UqEAKX5yjn6G5QEraK29vVHSBKENeK056pc+W0ZvrAPeqCCECAMDRXay3hea3dQE3Jo4ICnDCCApgwDAYDVR0TBAUwAwEBADATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMCAMAwIgYHKoEchu9CAQQXNjAxNkAxMTYwQDAwMDAwMDAwMTUwNTUwIAYIKoEc0BQEAQMEFDM2MjUzMTE5OTExMjAxMDMzMV8xMCAGCCqBHNAUBAEEBBQzNjI1MzExOTkxMTIwMTAzMzFfMTAfBgNVHSMEGDAWgBTBAuEZk26ZbFA/IleDOEmRaVIWBDCB2gYDVR0fBIHSMIHPMIHMoIHJoIHGhoGUbGRhcDovLzE5Mi4xNjguMTMuODA6Mzg5L0NOPXRlc3RmamNhc20yLENOPXRlc3RmamNhc20yLCBPVT1DUkxEaXN0cmlidXRlUG9pbnRzLCBjPWNuP2NlcnRpZmljYXRlUmV2b2NhdGlvbkxpc3Q/YmFzZT9vYmplY3RjbGFzcz1jUkxEaXN0cmlidXRpb25Qb2ludIYtaHR0cDovLzE5Mi4xNjguMTMuODAvZG93bmxvYWQvdGVzdGZqY2FzbTIuY3JsMIHgBggrBgEFBQcBAQSB0zCB0DCBkgYIKwYBBQUHMAKGgYVsZGFwOi8vMTkyLjE2OC4xMy44MDozODkvQ049dGVzdGZqY2FzbTIsQ049dGVzdGZqY2FzbTIsIE9VPWNBQ2VydGlmaWNhdGVzLCBjPWNuP2NBQ2VydGlmaWNhdGU/YmFzZT9vYmplY3RDbGFzcz1jZXJ0aWZpY2F0aW9uQXV0aG9yaXR5MDkGCCsGAQUFBzAChi1odHRwOi8vMTkyLjE2OC4xMy44MC9kb3dubG9hZC90ZXN0ZmpjYXNtMi5jZXIwHQYDVR0OBBYEFE+/fu/meKbt9J5o2N2PCafwaNmgMAwGCCqBHM9VAYN1BQADSAAwRQIgeyqmB5idIcUUWVOu+6CyDpGmHxMkwagh+uyUOqJMkRYCIQCaWLAXjwSryVl/qtOG2WnbFV3qRRNNxkdSDxNj1ieX1Q==";
        org.bouncycastle.asn1.x509.Certificate cert1 = CertParseUtil.getCert(base64Code);
        // 证书的基本信息
        System.out.println("<<=============证书的基本信息===============>>");
        System.out.println("证书版本:" + CertParseUtil.getVersion(cert1));
        System.out.println("序列号:" + CertParseUtil.getSerialNumber(cert1));
        System.out.println("算法标识:" + CertParseUtil.getSignatureAlgorithm(cert1));
        System.out.println("颁发者:" + CertParseUtil.getDN(CertParseUtil.getIssuer(cert1), "CN"));
        System.out.println("开始时间:" + CertParseUtil.getStartDate(cert1));
        System.out.println("结束时间:" + CertParseUtil.getEndDate(cert1));
        System.out.println("主体名:" + CertParseUtil.getSubject(cert1));
        System.out.println("主体名2:" + CertParseUtil.getIssuer(cert1));
        String certname = CertParseUtil.getDN(CertParseUtil.getSubject(cert1), "CN");
        System.out.println("证书名称:" + certname);
        System.out.println("证书算法版本:" + CertParseUtil.getOnlyCode(cert1));
//        System.out.println("企业/个人名称:"+certname.substring(0, certname.lastIndexOf("(")));
//        System.out.println("唯一码:"+c1.getOnlyCode(cert1));
        System.out.println("PK:" + CertParseUtil.getPK(cert1));
        System.out.println("<<=============证书的基本信息===============>>");
        Extensions extensions = cert1.getTBSCertificate().getExtensions();
        byte[] extensionBytes = CertParseUtil.getExtensionBytes("1.2.156.10260.4.1.1", extensions);
        if (extensionBytes.length == 0) {
            extensionBytes = CertParseUtil.getExtensionBytes("1.2.156.10260.4.1.4", extensions);
            extensionBytes = CertParseUtil.getExtensionBytes("1.2.156.10260.4.1.5", extensions);
        }
        String s = new String(extensionBytes);
        System.out.println(s);

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值