java如何从pem文件读取公私钥

qq_21749373 2017-02-06 08:55:22
求教各位大佬,java如何从pem文件读取公私钥
...全文
2802 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
smallsusu 2018-01-11
  • 打赏
  • 举报
回复
public static KeyPair readKeyPair(File pemFile, char[] password) throws Exception
    {
        PEMParser pemParser = new PEMParser(new FileReader(pemFile));
        Object object = pemParser.readObject();
        pemParser.close();
        PEMDecryptorProvider decProv = new JcePEMDecryptorProviderBuilder().build(password);
        JcaPEMKeyConverter converter = new JcaPEMKeyConverter().setProvider("BC");
        //获得密钥对
        KeyPair kp = null;
        if(object instanceof PEMEncryptedKeyPair)
        {
            kp = converter.getKeyPair(((PEMEncryptedKeyPair)object).decryptKeyPair(decProv));
        }
        else
        {
            kp = converter.getKeyPair((PEMKeyPair)object);
        }
        
        return kp;
    }

    public void initKeyPair(String pemFilePath, String password)
    {
        byte[] data = "PEM".getBytes();
        Security.addProvider(new BouncyCastleProvider());
        KeyPair kp;
        try{
            kp = (KeyPair)readKeyPair(new File(pemFilePath), password.toCharArray());
            PublicKey publicKey = kp.getPublic();
            PrivateKey privateKey = kp.getPrivate();
          
           return publicKey;
        }
        catch(Exception e)
        {
            e.printStackTrace();
           
        }
        
        return null;
    }
    
zjw1990818 2017-12-07
  • 打赏
  • 举报
回复
BufferedReader br=new BufferedReader(new FileReader(file)); Security.addProvider(new BouncyCastleProvider()); KeyPair kp=(KeyPair) new PEMReader(br).readObject(); BasicCredential cred=new BasicCredential(); PublicKey publicKey=kp.getPublic(); PrivateKey privateKey=kp.getPrivate();

50,504

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧