java程式實現對密鑰庫的管理

來源:互聯網
上載者:User

標籤:java   密鑰庫   keystore   管理   

1 Java程式列出密鑰庫所有條目
import java.util.*;import java.io.*;import java.security.*;public class ShowAlias{    public static void main(String args[ ]) throws Exception{        String pass="080302";        String name=".keystore";        FileInputStream in=new FileInputStream(name);        KeyStore ks=KeyStore.getInstance("JKS");                   ks.load(in,pass.toCharArray());        Enumeratione=ks.aliases( );        while( e.hasMoreElements()) {            System.out.println(e.nextElement());        }    }}  
2 Java程式修改密鑰庫口令
import java.io.*;import java.security.*;public class SetStorePass{    public static void main(String args[ ]) throws Exception{        char[ ] oldpass="080302".toCharArray();        char[ ] newpass="123456".toCharArray();        String name=".keystore";        FileInputStream in=new FileInputStream(name);        KeyStore ks=KeyStore.getInstance("JKS");        ks.load(in,oldpass);        in.close();        FileOutputStream output=new FileOutputStream(name);        ks.store(output,newpass);        output.close();     }}  


 

3 Java程式修改密鑰庫條目的口令及添加條目
package test;import java.io.*;import java.security.*;import java.security.cert.Certificate;public class SetKeyPass{   public static void main(String args[ ]) throws Exception{        //讀取相關參數        String name=".keystore";        String alias="mykey";        char[ ] storepass="123456".toCharArray();        char[ ] oldkeypass="080302".toCharArray();        char[ ] newkeypass="123456".toCharArray();        //擷取密鑰庫.keystore的KeyStore對象,並載入密鑰庫        FileInputStream in=new FileInputStream(name);        KeyStore ks=KeyStore.getInstance("JKS");        ks.load(in,storepass);        //擷取別名對應的條目的憑證鏈結        Certificate[ ] cchain=ks.getCertificateChain(alias);        //讀取別名對應的條目的私密金鑰        PrivateKey pk=(PrivateKey)ks.getKey(alias,oldkeypass);        //向密鑰庫中添加新的條目        ks.setKeyEntry(alias,pk,newkeypass,cchain);        in.close();        //將KeyStore對象內容寫入新檔案        FileOutputStream output=new FileOutputStream("333");        ks.store(output,storepass);        output.close();     }}

 4 Java程式檢驗別名及刪除條目
package test;import java.io.*;import java.security.*;public class DeleteAlias{    public static void main(String args[ ]) throws Exception{        String pass = "123456";        String name = ".keystore";        String alias = "mykey";        FileInputStream in=new FileInputStream(name);        KeyStore ks=KeyStore.getInstance("JKS");                   ks.load(in,pass.toCharArray());        if (ks.containsAlias(alias)){            ks.deleteEntry(alias);            FileOutputStream output=new FileOutputStream(name);            ks.store(output,pass.toCharArray());            System.out.println("Alias "+alias+" deleted");        }else{            System.out.println("Alias not exist");        }    }}  
5 Java程式從密鑰庫直接讀取認證
import java.io.*;import java.security.*;import java.security.cert.Certificate;public class PrintCert2{    public static void main(String args[ ]) throws Exception{          String pass="080302";          String alias="mykey";          String name=".keystore";          FileInputStream in=new FileInputStream(name);          KeyStore ks=KeyStore.getInstance("JKS");                     ks.load(in,pass.toCharArray());          Certificate c=ks.getCertificate(alias);          in.close();         System.out.println(c.toString( ));    }}  

java程式實現對密鑰庫的管理

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.