cfca工具包 加解密问题
我用下面这种方法加解密, 在加密的时候有四种加密算法供选择,然后当我用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();
}
}
...全文
相关推荐
CFCA工具包_服务器端(JAVA版)接口定义
CFCA工具包_服务器端(JAVA版)接口定义.doc
CFCA证书环境Java安装
CFCA证书环境Java安装,适用于金融业平台的统一登录
CFCA CryptoKit.SCQSKJ Extension-crx插件
语言:中文 (简体) Sign transaction data with a smart card.cfca证书加解密cfca证书加解密cfca证书加解密cfca证书加解密
CFCA CryptoKit.ALLPAY Extension-crx插件
语言:中文 (简体) CFCA Security Application Development Kit适用于Chrome最新机制的证书应用扩展程序
CFCA根证书
电子签名使用的很多证书都是CFCA的根证书,大家可以在自己的pdf阅读器中导入此根证书就可以直接查看签名的有效性。


Web 开发
