使用java从证书中读取私钥、公钥

  1. import java.io.FileInputStream;   
  2. import java.io.IOException;   
  3. import java.io.InputStream;   
  4. import java.security.InvalidKeyException;   
  5. import java.security.KeyStore;   
  6. import java.security.KeyStoreException;   
  7. import java.security.NoSuchAlgorithmException;   
  8. import java.security.NoSuchProviderException;   
  9. import java.security.PrivateKey;   
  10. import java.security.SignatureException;   
  11. import java.security.UnrecoverableKeyException;   
  12. import java.security.cert.Certificate;   
  13. import java.security.cert.CertificateException;   
  14. import java.security.cert.CertificateFactory;   
  15.   
  16. public class KeyReader {   
  17.   
  18.     public static void main(String[] args) throws KeyStoreException,   
  19.             NoSuchProviderException, NoSuchAlgorithmException,   
  20.             CertificateException, IOException, UnrecoverableKeyException,   
  21.             InvalidKeyException, SignatureException {   
  22.   
  23.         // Open an input stream on the keystore file   
  24.         String cerFileName = "d:/certA.cer";   
  25.         String p12FileName = "d:/certA.p12";   
  26.         String pfxPassword = "openssl";   
  27.   
  28.         InputStream fis = new FileInputStream(p12FileName);   
  29.   
  30.         // Create a keystore object   
  31.         KeyStore keyStore = KeyStore.getInstance("PKCS12""BC");   
  32.         // Load the file into the keystore   
  33.         keyStore.load(fis, pfxPassword.toCharArray());   
  34.   
  35.         String aliaesName = "abcd";   
  36.         PrivateKey priKey = (PrivateKey) (keyStore.getKey(aliaesName, null));   
  37.         System.out.println("private key:\n" + priKey);   
  38.   
  39.         // public key   
  40.         InputStream is = new FileInputStream(cerFileName);   
  41.         CertificateFactory cf = CertificateFactory.getInstance("x509");   
  42.         Certificate cerCert = cf.generateCertificate(is);   
  43.         System.out.println("public key:\n" + cerCert);   
  44.     }   
  45. }  
  1. da shang
    donate-alipay
               donate-weixin weixinpay

发表评论↓↓