朋友,好好看看JCE吧,你要的东西(摘要、签名、对称加解密、非对称加解密、证书解析),在Java的类库手册中都有(除了证书编码),做开发不能自己不动脑子让别人给你现成的。冒犯之处请原谅。

解决方案 »

  1.   

    package sample.crypto;import java.io.File;
    import java.io.IOException;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.io.ByteArrayOutputStream;
    import java.security.cert.Certificate;
    import java.security.cert.CertificateFactory;
    import java.security.cert.CertificateException;public final class CertificateFileSample
    extends Object
    {
    public static void main(String[] args)
    throws IOException,
    CertificateException
    {
    CertificateFactory factory = null;
    Certificate certificate = null; for (int i = 0; i<CRYPTOGRAPHERS.length; i++)
    {
    factory = CertificateFactory.getInstance(
    CRYPTOGRAPHERS[i]);
    certificate = loadCertificate(
    factory,
    getCertificateFileName());
    System.out.println();
    System.out.println(certificate.getClass().getName());
    System.out.println();
    System.out.println(certificate);
    System.out.println();
    }
    } private static Certificate loadCertificate(
    CertificateFactory factory,
    String fileName)
    throws IOException,
    CertificateException
    {
    FileInputStream inFile = new FileInputStream(fileName);
    Certificate certificate =
    factory.generateCertificate(inFile);
    inFile.close();
    return certificate;
    } private static String getCertificateFileName()
    {
    return "cert.cer";
    } private static final String[] CRYPTOGRAPHERS =
    new String[]
    {
    "X.509"
    }; private CertificateFileSample()
    {
    super();
    }
    }