一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

從keystore(jks)文件中提取私鑰

 浸心閣 2016-03-13
  方案1:

使用OpenSSL工具來完成

1、從JKS轉換到PKCS12
D:\ssl>keytool -importkeystore -srckeystore keystore_old.jks -destkeystore keystore_old.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass changeit -deststorepass changeit -srcalias tom_server -destalias xxx -srckeypass changeit -destkeypass changeit -noprompt

2、從PKCS12轉換成PEM格式
openssl pkcs12 -in keystore_old.p12 -out keystore_old.pem -passin pass:changeit -passout pass:changeit

3、用記事本打開PEM格式文件,從PEM格式的certificate chain中取出私鑰,保存為privateKey.key

4、生成私鑰
openssl rsa -in privateKey.key -check
私鑰將被顯示在命令行界面上


方案2:

Keystore是一個密碼保護的文件,存放私鑰和證書。可以通過JDK自帶的keytool工具生成。
但是keytool工具,并沒有提供方便的方法,從keystore文件中到處私鑰和證書。
所以可以通過JDK提供的java.security.KeyStore 類來編碼完成相關工作。

   import java.io.File;  
   import java.io.FileInputStream;  
   import java.io.FileWriter;  
   import java.security.Key;  
   import java.security.KeyPair;  
   import java.security.KeyStore;  
   import java.security.KeyStoreException;  
   import java.security.NoSuchAlgorithmException;  
   import java.security.PrivateKey;  
   import java.security.PublicKey;  
   import java.security.UnrecoverableKeyException;  
   import java.security.cert.Certificate;  
   import sun.misc.*;  
   public class ExportPrivateKey {  
   private File keystoreFile;  
   private String keyStoreType;  
   private char[] password;  
   private String alias;  
   private File exportedFile;  
   public static KeyPair getPrivateKey(KeyStore keystore, String alias, char[] password) {  
   try {  
   Key key=keystore.getKey(alias,password);  
   if(key instanceof PrivateKey) {  
   Certificate cert=keystore.getCertificate(alias);  
   PublicKey publicKey=cert.getPublicKey();  
   return new KeyPair(publicKey,(PrivateKey)key);  
   }  
   } catch (UnrecoverableKeyException e) {  
   } catch (NoSuchAlgorithmException e) {  
   } catch (KeyStoreException e) {  
   }  
   return null;  
   }  
   public void export() throws Exception{  
   KeyStore keystore=KeyStore.getInstance(keyStoreType);  
   BASE64Encoder encoder=new BASE64Encoder();  
   keystore.load(new FileInputStream(keystoreFile),password);  
   KeyPair keyPair=getPrivateKey(keystore,alias,password);  
   PrivateKey privateKey=keyPair.getPrivate();  
   String encoded=encoder.encode(privateKey.getEncoded());  
   FileWriter fw=new FileWriter(exportedFile);  
   fw.write("—–BEGIN PRIVATE KEY—–\n");  
   fw.write(encoded);  
   fw.write("\n");  
   fw.write("—–END PRIVATE KEY—–");  
   fw.close();  
   }  
   public static void main(String args[]) throws Exception{  
   ExportPrivateKey export=new ExportPrivateKey();  
   export.keystoreFile=new File("/Users/Luke/Workspace/StringTest/src/com/lukejin/stringtest/keystore.jks");  
   export.keyStoreType="JKS";  
   export.password="changeit".toCharArray();  
   export.alias="tom_server";  
   export.exportedFile=new File("luke");  
   export.export();  
   }  
   }  

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧美日韩免费观看视频| 婷婷激情四射在线观看视频| 色婷婷成人精品综合一区| 国产又大又猛又粗又长又爽| 国产精品一区二区成人在线| 亚洲另类女同一二三区| 亚洲最新一区二区三区| 日韩女优视频国产一区| 丝袜诱惑一区二区三区| 国产精品香蕉免费手机视频| 日韩成人h视频在线观看| 亚洲一区二区三区有码| 黄色片国产一区二区三区| 日本精品啪啪一区二区三区| 欧美日韩视频中文字幕| 91亚洲国产日韩在线| 国产又猛又大又长又粗| 91免费精品国自产拍偷拍| 久久综合亚洲精品蜜桃| 特黄大片性高水多欧美一级| 亚洲天堂一区在线播放| 亚洲天堂国产精品久久精品| 激情内射亚洲一区二区三区| 国产乱人伦精品一区二区三区四区 | 国产福利在线播放麻豆| 亚洲国产香蕉视频在线观看| 国产又大又硬又粗又黄| 在线视频三区日本精品| 国产精品福利一二三区| 国内精品偷拍视频久久| 午夜精品福利视频观看| 九九热国产这里只有精品| 国产精品流白浆无遮挡| 日本和亚洲的香蕉视频| 日韩欧美中文字幕av| 久久女同精品一区二区| 正在播放国产又粗又长| 国产精品涩涩成人一区二区三区| 日本道播放一区二区三区| 东京热加勒比一区二区三区| 伊人久久青草地婷婷综合|