Java实现读取PFX文件

实现代码

    /**
     * getPvkformPfx: 从PFX文件中获取私钥
     * @param strPfx 文件存储目录
     * @param strPassword PFX密码
     */
	private  static PrivateKey getPvkformPfx(String strPfx, String strPassword){
        try {
            FileInputStream fis = new FileInputStream(strPfx);
            //密码处理
            char[] nPassword = null;  
            if ((strPassword == null) || strPassword.trim().equals("")){  
                nPassword = null;  
            } else {
                nPassword = strPassword.toCharArray();  
            }
            //加载读取PFX文件
            KeyStore ks = KeyStore.getInstance("PKCS12");
            ks.load(fis, nPassword);  
            fis.close();
            Enumeration enumas = ks.aliases();
            //从文件中获取秘钥
            String keyPFXFile = null;
            if (enumas.hasMoreElements()) {
                keyPFXFile = (String)enumas.nextElement();
            }
            PrivateKey prikey = (PrivateKey) ks.getKey(keyPFXFile, nPassword);
            Certificate cert = ks.getCertificate(keyPFXFile);
            PublicKey pubkey = cert.getPublicKey();  
            System.out.println("cert class = " + cert.getClass().getName());  
            System.out.println("cert = " + cert);  
            System.out.println("public key = " + pubkey);  
            System.out.println("private key = " + prikey);
            BASE64Encoder bse = new BASE64Encoder();
            System.out.println("private encode = " + bse.encode(prikey.getEncoded()));
            return prikey;  
        } catch (Exception e) {
            e.printStackTrace();  
        }  
        return null;  
    }  

测试实例

     public static void main(String args[]){
         String keyStorefile = "D:\\test\\private.pfx";
         String keyPassword = "12345678";
         getPvkformPfx(keyStorefile,keyPassword);
     }

结果:
在这里插入图片描述

发布了42 篇原创文章 · 获赞 0 · 访问量 1426

猜你喜欢

转载自blog.csdn.net/tcctcszhanghao/article/details/103661808