小编Arv*_*hit的帖子

使用PKCS#7加密

我正在使用Bouncy Castle提供的库来加密,解密,签名和验证标志.我这样做
1.加密数据
2.签名数据
3.将签名字节写入文件
4.从文件中读取签名字节
5.验证签名
6.解密数据

我参考了Beginning Cryptography with Java

当我验证数据时,我的问题出在第5步

org.bouncycastle.cms.CMSException:message-digest属性值与计算值不匹配

我的代码如下

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.math.BigInteger;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.SecureRandom;
import java.security.cert.CertPathBuilder;
import java.security.cert.CertStore;
import java.security.cert.Certificate;
import java.security.cert.CollectionCertStoreParameters;
import java.security.cert.PKIXBuilderParameters;
import java.security.cert.PKIXCertPathBuilderResult;
import java.security.cert.TrustAnchor;
import java.security.cert.X509CertSelector;
import java.security.cert.X509Certificate;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.Iterator;

import javax.security.auth.x500.X500Principal;
import javax.security.auth.x500.X500PrivateCredential;

import org.bouncycastle.asn1.x509.BasicConstraints;
import org.bouncycastle.asn1.x509.KeyUsage;
import org.bouncycastle.asn1.x509.X509Extensions;
import org.bouncycastle.cms.CMSEnvelopedData;
import org.bouncycastle.cms.CMSEnvelopedDataGenerator;
import org.bouncycastle.cms.CMSEnvelopedDataParser; …
Run Code Online (Sandbox Code Playgroud)

java cryptography keystore public-key-encryption pkcs#7

0
推荐指数
1
解决办法
2万
查看次数