非对称加密算法相对对称加密算法而言更加安全。消息传输的两端,协调产生一对秘钥(公钥和私钥),公钥加密私钥解密,反之。就算秘钥中的一只被破解,也不能解析出消息的内容。但是非对称加密算法加解密花费时间长,速度慢。
RSA
// 1.生成密钥
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(512);
KeyPair keyPair =keyPairGenerator.generateKeyPair();
// 2.公钥,私钥
RSAPublicKey rsaPublicKey = (RSAPublicKey) keyPair.getPublic();
RSAPrivateKey rsaPrivateKey = (RSAPrivateKey) keyPair.getPrivate();
System.out.println("Public Key:" + Base64.encodeBase64String(rsaPublicKey.getEncoded()));
System.out.println("Private Key:" + Base64.encodeBase64String(rsaPrivateKey.getEncoded()));
PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PK