办公设备、办公用品管理程序

上传人:子 文档编号:42744514 上传时间:2018-06-03 格式:DOC 页数:9 大小:15.89KB
返回 下载 相关 举报
办公设备、办公用品管理程序_第1页
第1页 / 共9页
办公设备、办公用品管理程序_第2页
第2页 / 共9页
办公设备、办公用品管理程序_第3页
第3页 / 共9页
办公设备、办公用品管理程序_第4页
第4页 / 共9页
办公设备、办公用品管理程序_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《办公设备、办公用品管理程序》由会员分享,可在线阅读,更多相关《办公设备、办公用品管理程序(9页珍藏版)》请在金锄头文库上搜索。

1、办公设备、办公用品管理程序办公设备、办公用品管理程序一:需要包含的包import java.security.*;import java.io.*;import java.util.*;import java.security.*;import java.security.cert.*;import sun.security.x509.*import java.security.cert.Certificate;import java.security.cert.CertificateFactory;二:从文件中读取证书用 keytool 将.keystore 中的证书写入文件中,然后从该文件

2、中读取证书信息CertificateFactory cf=CertificateFactory.getInstance(“X.509“);FileInputStream in=new FileInputStream(“out.csr“);Certificate c=cf.generateCertificate(in);String s=c.toString();三:从密钥库中直接读取证书String pass=“ HYPERLINK “http:/ t “_blank“ 123456 “;FileInputStream in=new FileInputStream(“.keystore“);K

3、eyStore ks=KeyStore.getInstance(“JKS“);ks.load(in,pass.toCharArray();java.security.cert.Certificate c=ks.getCertificate(alias);/alias 为条目的别名四:JAVA 程序中显示证书指定信息System.out.println(“输出证书信息:n“+c.toString();System.out.println(“版本号:“+t.getVersion();System.out.println(“ HYPERLINK “http:/ t “_blank“ 序列号 :“+t

4、.getSerialNumber().toString(16);System.out.println(“主体名:“+t.getSubjectDN();System.out.println(“签发者:“+t.getIssuerDN();System.out.println(“有效期:“+t.getNotBefore();System.out.println(“签名算法:“+t.getSigAlgName();byte HYPERLINK “http:/ t “_blank“ sig =t.getSignature();/签名值PublicKey HYPERLINK “http:/ t “_bla

5、nk“ pk =t.getPublicKey();byte pkenc=pk.getEncoded();System.out.println(“公钥“);for(int i=0;ipkenc.length;i+)System.out. HYPERLINK “http:/ t “_blank“ print (pkenci+“,“);五:JAVA 程序列出密钥库所有条目String pass=“123456“;FileInputStream in=new FileInputStream(“.keystore“);KeyStore ks=KeyStore.getInstance(“JKS“);ks.

6、load(in,pass.toCharArray();Enumeration e=ks.aliases();while(e.hasMoreElements()java.security.cert.Certificate c=ks.getCertificate(String)e.nextElement();六:JAVA 程序修改密钥库口令String oldpass=“123456“;String newpass=“654321“;FileInputStream in=new FileInputStream(“.keystore“);KeyStore ks=KeyStore.getInstanc

7、e(“JKS“);ks.load(in,oldpass.toCharArray();in.close();FileOutputStream output=new FileOutputStream(“.keystore“);ks.store(output,newpass.toCharArray();output.close();七:JAVA 程序修改密钥库条目的口令及添加条目FileInputStream in=new FileInputStream(“.keystore“);KeyStore ks=KeyStore.getInstance(“JKS“);ks.load(in,storepass

8、.toCharArray();Certificate cchain=ks.getCertificate(alias);获取别名对应条目的证书链PrivateKey pk=(PrivateKey)ks.getKey(alias,oldkeypass.toCharArray();获取别名对应条目的私钥ks.setKeyEntry(alias,pk,newkeypass.toCharArray(),cchain);向密钥库中添加条目第一个参数指定所添加条目的别名,假如使用已存在别名将覆盖已存在条目,使用新别名将增加一个新条目,第二个参数为条目的私钥,第三个为设置的新口令,第四个为该私钥的公钥的证书链

9、FileOutputStream output=new FileOutputStream(“another“);ks.store(output,storepass.toCharArray()将 keystore 对象内容写入新文件八:JAVA 程序检验别名和删除条目FileInputStream in=new FileInputStream(“.keystore“);KeyStore ks=KeyStore.getInstance(“JKS“);ks.load(in,storepass.toCharArray();ks.containsAlias(“sage“);检验条目是否在密钥库中,存在返

10、回 trueks.deleteEntry(“sage“);删除别名对应的条目FileOutputStream output=new FileOutputStream(“.keystore“);ks.store(output,storepass.toCharArray()将 keystore 对象内容写入文件,条目删除成功九:JAVA 程序签发数字证书(1)从密钥库中读取 CA 的证书FileInputStream in=new FileInputStream(“.keystore“);KeyStore ks=KeyStore.getInstance(“JKS“);ks.load(in,stor

11、epass.toCharArray();java.security.cert.Certificate c1=ks.getCertificate(“caroot“);(2)从密钥库中读取 CA 的私钥PrivateKey caprk=(PrivateKey)ks.getKey(alias,cakeypass.toCharArray();(3)从 CA 的证书中提取签发者的信息byte encod1=c1.getEncoded(); 提取 CA 证书的编码X509CertImpl cimp1=new X509CertImpl(encod1); 用该编码创建 X509CertImpl 类型对象X50

12、9CertInfo cinfo1=(X509CertInfo)cimp1.get(X509CertImpl.NAME+“.“+X509CertImpl.INFO); 获取 X509CertInfo 对象X500Name issuer=(X500Name)cinfo1.get(X509CertInfo.SUBJECT+“.“+CertificateIssuerName.DN_NAME); 获取 X509Name 类型的签发者信息(4)获取待签发的证书CertificateFactory cf=CertificateFactory.getInstance(“X.509“);FileInputStr

13、eam in2=new FileInputStream(“user.csr“);java.security.cert.Certificate c2=cf.generateCertificate(in);(5)从待签发的证书中提取证书信息byte encod2=c2.getEncoded();X509CertImpl cimp2=new X509CertImpl(encod2); 用该编码创建 X509CertImpl 类型对象X509CertInfo cinfo2=(X509CertInfo)cimp2.get(X509CertImpl.NAME+“.“+X509CertImpl.INFO);

14、 获取 X509CertInfo 对象(6)设置新证书有效期Date begindate=new Date(); 获取当前时间Date enddate=new Date(begindate.getTime()+3000*24*60*60*1000L); 有效期为3000 天CertificateValidity cv=new CertificateValidity(begindate,enddate); 创建对象cinfo2.set(X509CertInfo.VALIDITY,cv); 设置有效期(7)设置新证书序列号int sn=(int)(begindate.getTime()/1000)

15、; 以当前时间为序列号CertificateSerialNumber csn=new CertificateSerialNumber(sn);cinfo2.set(X509CertInfo.SERIAL_NUMBER,csn);(8)设置新证书签发者cinfo2.set(X509CertInfo.ISSUER+“.“+CertificateIssuerName.DN_NAME,issuer);应用第三步的结果(9)设置新证书签名算法信息AlgorithmId algorithm=new AlgorithmId(AlgorithmId.md5WithRSAEncryption_oid);cinfo2.set(CertificateAlgorithmId.NAME+“.“+CertificateAlgorithmId.ALGORITHM,algorithm);(10)创建证书并使用 CA 的私钥对其签名X509CertImpl newcert=new X509CertImpl(cinfo2);newcert.sign(caprk,“MD5WithRSA“); 使用 CA 私钥对其签名(11)将新证书写入密钥库ks.setCertificateEntry(“lf_signed“,newcert);FileOutput

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号