cfca工具包 加解密问题

查看余e 2015-06-25 08:32:45
我用下面这种方法加解密, 在加密的时候有四种加密算法供选择,然后当我用EnvelopUtil.DES3_CBC这种算法加密后解密会报错“850935: 解析消息数字信封失败 com.cfca.util.pki.cms.CMSException: key invalid in message.” 但是用其他三种算法就没有问题,想问问大神们这是怎么回事

    
public static void main(String[] argv)
{
try
{
Session session = null;// 加密库回话session对象

byte[] fbisCer = null ;
byte[] Key = null ;

JCrypto jcrypto = JCrypto.getInstance();
jcrypto.initialize("JSOFT_LIB", null);
session = jcrypto.openSession("JSOFT_LIB");

//读取公钥证书
InputStream is = jcrypto.getClass().getResourceAsStream("/fbis/"+"14.cer");
int len = is.available();
fbisCer = new byte[len];
is.read(fbisCer);
is.close();
//读取私钥匙证书
is = jcrypto.getClass().getResourceAsStream("/fbis/"+"pfx_14.pfx");
len = is.available();
Key = new byte[len];
is.read(Key);
is.close();

EnvelopUtil envUtil = new EnvelopUtil();
X509Cert cert = new X509Cert(fbisCer);
envUtil.addRecipient(cert);
envUtil.setCMSFlag();
byte[] b64MsgEnvelop = envUtil.envelopeMessage("aaaa".getBytes(), EnvelopUtil.DES3_CBC,
session);
JKey priKey = KeyUtil.getPriKey(Key, "cmbc");
// 数字信封接收者的公钥证书
X509Cert cert1 = CertUtil.getCert(Key, "cmbc");
// 根据私钥,公钥证书解密信息
byte[] src = envUtil.openEnvelopedMessage(b64MsgEnvelop, priKey, cert1, session);

System.out.println("tt:"+b64MsgEnvelop);
System.out.println(new String(src));
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}

}
...全文
1309 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
java程序 2017-01-11
  • 打赏
  • 举报
回复
javawanglei 2016-05-05
  • 打赏
  • 举报
回复
我这边正在做签章的
查看余e 2015-06-26
  • 打赏
  • 举报
回复
没人吗
查看余e 2015-06-26
  • 打赏
  • 举报
回复
难道顶部上去吗 一个来水的都没有

81,092

社区成员

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

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