如何从CA证书中读取用户名和密码?急急急

xinhuagong 2003-02-21 09:53:49
谢谢
...全文
563 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinhuagong 2003-02-27
  • 打赏
  • 举报
回复
谢谢!:)
我用的是ASP,做PKI卡认证
通过取得用户名request.ClientCertificate("SubjectCN")与数据库的用户名进行比较,正确就通过安全认证,你认为这种如何?
lqlovelm 2003-02-22
  • 打赏
  • 举报
回复
解决没有?
lqlovelm 2003-02-21
  • 打赏
  • 举报
回复
我把我写的相关程序的一部分传上来,不只能否满足你的要求。


import java.security.*;
import java.security.spec.*;
import java.io.*;
import java.util.*;
import java.security.cert.*;
import java.math.BigInteger;
import java.util.Date;
import javax.crypto.Cipher;
import org.bouncycastle.jce.provider.*;
public class CertificateCheck {
private Principal subDn;
public boolean CertificateCheck()
{
try {
FileInputStream fin=null;
DataInputStream din=null;
java.security.cert.CertificateFactory CertFactory=java.security.cert.CertificateFactory.getInstance("X.509"); //初始化CertificateFactory

//证书信息
fin=new FileInputStream("My.cert");//证书文件名
din=new DataInputStream(fin);
cert = (X509Certificate)CertFactory.generateCertificate(din);
this.subDn=cert.getSubjectDN() ; //得到证书主题。其中就可以放一些信息,如用户信息等
int ver=cert.getVersion() ; //证书版本
String type=cert.getType() ; //Example x.509
BigInteger serialNum=cert.getSerialNumber();//RETURN the serial number(序列号);An integer assigned by CA
PublicKey pubKey=cert.getPublicKey() ; //获得公钥
Date notBefore=cert.getNotBefore() ; //the start date of the validity period
Date notAfter=cert.getNotAfter() ; //the end date of the validity period.
byte[] sigNature=cert.getSignature() ; //返回签名数据;(CA签名)
String sigName=cert.getSigAlgName() ; //获得签名算法
fin.close();
din.close() ;
}catch(Exception e){e.printStackTrace();}
}
public Principal getSubDn()
{
return this.subDn ;
}
}

8,327

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 IIS
社区管理员
  • IIS
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧