String pfx="d:/测试招标单位1-签名证书.pfx";
     X509Certificate x509=(X509Certificate)CAUtil.getCfeformPfx(pfx, "1234");
     X509Certificate[] certificates=new X509Certificate[1];
     certificates[0]=x509;
     PrivateKey privateKey=CAUtil.GetPvkformPfx(pfx, "1234");
     byte[] data="111".getBytes();
     Signature signer = Signature.getInstance(x509.getSigAlgName());
    signer.initSign(privateKey);
    signer.update(data, 0, data.length);
    byte[] signedAttributes = signer.sign();
    ContentInfo contentInfo = new ContentInfo(ContentInfo.DATA_OID, null);
    java.math.BigInteger serial = x509.getSerialNumber();
    
    SignerInfo si = new SignerInfo(new X500Name(x509.getIssuerDN()
                .getName()), // X500Name, issuerName,
                serial, // x509.getSerialNumber(), BigInteger serial,
                AlgorithmId.get("SHA1"), // AlgorithmId,
                                                    // digestAlgorithmId,
                null, // PKCS9Attributes, authenticatedAttributes,
                new AlgorithmId(AlgorithmId.RSAEncryption_oid), // AlgorithmId,
                                                                // digestEncryptionAlgorithmId,
                signedAttributes, // byte[] encryptedDigest,
                null); // PKCS9Attributes unauthenticatedAttributes) {         SignerInfo[] signerInfos = { si };         // 构造PKCS7数据
        AlgorithmId[] digestAlgorithmIds = { AlgorithmId.get("SHA1") };
        PKCS7 p7 = new PKCS7(digestAlgorithmIds, contentInfo, certificates,
                signerInfos);
        ByteArrayOutputStream baout = new ByteArrayOutputStream();   
        p7.encodeSignedData(baout);   
                // Base64编码   
                 String base64Result=new String(Base64.encode(baout.toByteArray()));
        System.out.println(base64Result);   
上面能得到正确的结果  用C++能验出来但
byte[] b=Base64.decode(base64Result.getBytes());
ByteArrayInputStream in=new ByteArrayInputStream(b);
PKCS7 pkcs7 = new PKCS7(in);   
        //System.out.println(pkcs7.verify());
这样就验不出来 请高人指点  或者给出PKCS7签名和验签的例子也可以