请问怎么将string或者base64形式的X509证书转化成一个X509Certificate的对象?

aigh 2005-07-30 11:21:00

我得到X509证书的“字符串”或者“base64编码”,然后将“字符串”或者“base64编码”存储,但是反过来我如何将“字符串”或者“base64编码”还原成一个X509Certificate的对象?

还有一个问题就是我有一些数据(比如一个字符串),被PrivateKey签名了,我怎么用对应的PublicKey验证签名,java提供哪些类支持?

谢谢大伙告知!
...全文
1525 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
aigh 2005-08-13
  • 打赏
  • 举报
回复
谢谢,给分了
Octer 2005-08-10
  • 打赏
  • 举报
回复
顺便推荐一下
www.bouncyCastle.org
这一个JCE框架包
对你也许很有用
Octer 2005-08-10
  • 打赏
  • 举报
回复
呵呵,别客气,我最近要升裤衩
支持一下吧
aigh 2005-08-09
  • 打赏
  • 举报
回复
谢谢楼上的啊
Octer 2005-08-08
  • 打赏
  • 举报
回复
问题二:
/*
* Created on 2005-6-22
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package JCE;

import java.security.InvalidKeyException;
import java.security.Key;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.SecureRandom;
import java.security.Signature;
import java.security.SignatureException;

/**
* @author James_s
*
* TODO To change the template for this generated type comment go to Window -
* Preferences - Java - Code Style - Code Templates
*/
public class SignatureDemo {
private Signature sg;

public SignatureDemo(Signature sg) {
this.sg = sg;
}

public boolean verifySignature(byte[] sigData,byte []data, Key key)
throws InvalidKeyException, SignatureException {
sg.initVerify((PublicKey) key);
sg.update(data);
return sg.verify(sigData);
}

public byte[] signSignature(byte[] message, Key key) {
try {
SecureRandom srandom = new SecureRandom();
srandom.setSeed(System.currentTimeMillis());
sg.initSign((PrivateKey) key);
sg.update(message);
return sg.sign();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}

}
Octer 2005-08-08
  • 打赏
  • 举报
回复
to aigh(ai)
不是文本文件,而是一个二进制文件,符合der编码格式,
aigh 2005-08-02
  • 打赏
  • 举报
回复
如果不会帮着顶一下也很感谢啊!!!
aigh 2005-07-31
  • 打赏
  • 举报
回复 1
JDK关于CertificateFactory 的帮助有这么一段:
FileInputStream fis = new FileInputStream(filename);
BufferedInputStream bis = new BufferedInputStream(fis);

CertificateFactory cf = CertificateFactory.getInstance("X.509");

while (bis.available() > 0) {
Certificate cert = cf.generateCertificate(bis);
System.out.println(cert.toString());
}

其中filename是指那个base64编码的文件,但是不知道filename是什么格式,是否就是一个文本文件之类的文件里存放了base64字符串?

上面那位仁兄是不是要把一个.crt的证书文件生成对象,我这倒是有例子代码,其中CA_Name是指证书文件的名字,如cert.crt,这段代码我是在网上找的。

可惜我现在是想把base64的字符串生成证书对象,哪位大虾可帮我?

//================================================================================
CertificateFactory certificate_factory=CertificateFactory.getInstance("X.509");
FileInputStream file_inputstream=new FileInputStream(CA_Name);
X509Certificate x509certificate=(X509Certificate)certificate_factory.generateCertificate(file_inputstream);
shenpipi 2005-07-31
  • 打赏
  • 举报
回复
同求,帮顶
shenpipi 2005-07-31
  • 打赏
  • 举报
回复
俺也一直在找怎么将证书文件生成一个证书对象的方法呢.还有如何写p12证书.

50,528

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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