java程序实现对密钥库的管理

1Java程序列出密钥库所有条目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());        }    }} 2Java程序修改密钥库口令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();     }}

3Java程序修改密钥库条目的口令及添加条目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();     }}4Java程序检验别名及删除条目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");        }    }} 5Java程序从密钥库直接读取证书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( ));}} 6使用Java程序将已签名的数字证书导入密钥库首先读取import java.io.*;import java.security.*;import java.security.cert.*;/* * CA证书,已经签名的用户数字证书,用户密钥库名和密码以及相应证书的私钥名称,新生成的证书名称和密钥库名以及密码 */public class ImportCert{    public static void main(String args[ ]) throws Exception{        //参数        String cacert="new.cer";String lfcert="hqy.cer";String lfstore="mykeystore";char[] lfstorepass="080302".toCharArray( );char[] lfkeypass="080302".toCharArray( );//CA的证书CertificateFactory cf=CertificateFactory.getInstance("X.509");FileInputStream in1=new FileInputStream(cacert);java.security.cert.Certificate cac=cf.generateCertificate(in1);in1.close();//用户的签名证书FileInputStream in2=new FileInputStream(lfcert);java.security.cert.Certificate lfc=cf.generateCertificate(in2);in2.close();//证书链java.security.cert.Certificate[] cchain={lfc,cac};//用户的密钥库FileInputStream in3=new FileInputStream(lfstore);KeyStore ks=KeyStore.getInstance("JKS");ks.load(in3,lfstorepass);PrivateKey prk=(PrivateKey)ks.getKey("new",lfkeypass);//导入证书ks.setKeyEntry("new_signed",prk,lfstorepass,cchain);//保存密钥库FileOutputStream out4=new FileOutputStream("nostore");ks.store(out4,"080302".toCharArray());out4.close(); }}

效果只能是既费时又没有胜利,再聪慧的人也没法成学。

java程序实现对密钥库的管理

相关文章:

你感兴趣的文章:

标签云: