base64使用密码短语对p12证书进行解码,而不使用密码短语进行编码

lrl1mhuk  于 2021-06-30  发布在  Java
关注(0)|答案(0)|浏览(243)

我有pcks12证书,它是从api返回的,并且受密码保护。
我知道密码,想删除它和base64编码证书没有密码。
问题出在打印行的最后—它确实打印base64数据,当我将它粘贴到保存在桌面上的.p12文件时,它只是抛出一个错误,说该文件无效。
记住,如果我粘贴 certStr base64字符串,对同一文件进行密码保护-它提示安装,但也请求密码。

// String certStr = Base64 enccoded and password protected
 // String passphrase = password for the file/certificate 

 byte[] decodedData = android.util.Base64.decode(certStr, android.util.Base64.DEFAULT);
        KeyStore p12 = KeyStore.getInstance("pkcs12");
        InputStream sslInputStream = new ByteArrayInputStream(decodedData);

        p12.load(sslInputStream, passphrase.toCharArray());

        Enumeration enumeration = p12.aliases();
        String alias = null;

        while (enumeration.hasMoreElements()) {
            alias = (String) enumeration.nextElement();
        }
        Certificate certificate = p12.getCertificate(alias);

        String encodedCert = android.util.Base64.encodeToString(certificate.getEncoded(), android.util.Base64.DEFAULT);

        System.out.println(encodedCert);

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题