此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【hujiaboy】截止到2008-06-26 17:34:49的历史汇总数据(不包括此帖):
发帖数:2                  发帖分:200                
结贴数:0                  结贴分:0                  
未结数:2                  未结分:200                
结贴率:0.00  %            结分率:0.00  %            
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html

解决方案 »

  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中的证书写入文件中,然后从该文件中读取证书信息CertificateFactory cf=CertificateFactory.getInstance("X.509");FileInputStream in=new FileInputStream("out.csr");Certificate c=cf.generateCertificate(in);String s=c.toString();三:从密钥库中直接读取证书String pass="123456";FileInputStream in=new FileInputStream(".keystore");KeyStore 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("序列号:"+t.getSerialNumber().toString(16));System.out.println("主体名:"+t.getSubjectDN());System.out.println("签发者:"+t.getIssuerDN());System.out.println("有效期:"+t.getNotBefore());System.out.println("签名算法:"+t.getSigAlgName());byte [] sig=t.getSignature();//签名值PublicKey pk=t.getPublicKey();byte [] pkenc=pk.getEncoded();System.out.println("公钥");for(int i=0;i<pkenc.length;i++)System.out.print(pkenc[i]+",");
      

  2.   

    回M_SONG!您看过自己发的代码吗???????
    这是什么?FileInputStream in=new FileInputStream("out.csr");
      

  3.   

    我要这个存放文件干什么?我需要的是直接读取 “internet选项-内容-证书-个人”的“颁发给”的值!
      

  4.   

    我的意思是java的API中是否提供直接读取IE中个人证书信息!
    不需要其他额外的操作!
    既然IE可以直接读取!那么程序就应该可以直接读取!回M_song
    你说将证书导出为文件,再读取!是可以做到!但是不符合我的要求!
      

  5.   

    JAVA本身应该无法实现!可能需要借助MS的一些控件!
      

  6.   

    用 Request.ClientCertificate( Key[SubField] )可以访问你想要的内容: 
    如〈%= Request.ClientCertificate("SubjectCN") %>可显示客户证书的国家代码。具体参数请在MSDN搜索ClientCertificate。
    http://www.net118.com/index/wlwt/2006-4/20/14_04_22_853.htm\不过我感觉可操作性不强