import java.security.spec.X509EncodedKeySpec;import java.security.KeyPairGenerator;import javax.crypto.Cipher;import java.security.interfaces.RSAPublicKey;import org.apache感謝原創(chuàng)分享者mons.codec.binary.base64;import java.security.spec.PKCS8EncodedKeySpec;import java.security.PrivateKey;public class IMFRsa {public static void RsaFdc()throws Exception{String src=http://xtnz.com.cn/skin/m04redskin/image/nopic.gif 生成公鑰私鑰對(duì)KeyPairGenerator keyPairGenerator =KeyPairGenerator.getInstance("RSA");keyPairGenerator.initialize(512);KeyPair keyPair =keyPairGenerator.generateKeyPair();RSAPublicKey rsaPublickey =(RSAPublicKey)keyPair.getPublic();RSAPrivateKey rsaPrivatekey =(RSAPrivateKey)keyPair.getPrivate();System.out.println("publicKey:"+base64.encodebase64String(rsaPublickey.getEncoded()));System.out.println("privateKey:"+base64.encodebase64String(rsaPrivatekey.getEncoded()));//2 私鑰加密,公鑰解密--加密PKCS8EncodedKeySpec pkcs8EncodedKeySpec =new PKCS8EncodedKeySpec(rsaPrivatekey.getEncoded());KeyFactory keyFactory=KeyFactory.getInstance("RSA");PrivateKey privateKey =keyFactory.generatePrivate(pkcs8EncodedKeySpec);Cipher cipher =Cipher.getInstance("RSA");cipher.init(Cipher.ENCRYPT_MODE, privateKey);byte[] result =cipher.doFinal(src.getBytes());System.out.println("私鑰加密,公鑰解密--加密:"+base64.encodebase64String(result));//3 私鑰加密,公鑰解密--解密X509EncodedKeySpec x509EncodedKeyspec =new X509EncodedKeySpec(rsaPublickey.getEncoded());keyFactory =KeyFactory.getInstance("RSA");PublicKey publicKey=keyFactory.generatePublic(x509EncodedKeyspec);cipher =Cipher.getInstance("RSA");cipher.init(Cipher.DECRYPT_MODE, publicKey);result =cipher.doFinal(result);System.out.println("私鑰加密,公鑰解密--解密:"+new String(result));}}
<dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.10</version> </dependency>