public static void main(String[] args) { String subjectDN = "CN=duwenlei"; String algorithm = ""; try { KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); keyPairGenerator.initialize(2048); KeyPair keyPair = keyPairGenerator.generateKeyPair(); algorithm = keyPair.getPrivate().getAlgorithm(); PKCS10CertificationRequestBuilder builder = new PKCS10CertificationRequestBuilder(new X500Name(subjectDN) ,SubjectPublicKeyInfo.getInstance(keyPair.getPublic().getEncoded())); JcaContentSignerBuilder jcaBuilder = new JcaContentSignerBuilder("sha1withrsa"); // jcaBuilder.setProvider(provider); 这里可以添加提供者 ContentSigner contentSigner = jcaBuilder.build(keyPair.getPrivate()); builder.build(contentSigner); System.out.println(builder.toString()); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (OperatorCreationException e) { e.printStackTrace(); } }
需要用到的包:bcmail-jdk15-1.46.jar,bcprov-jdk15-1.46.jar,用不到:bctsp-jdk15-1.46.jar