【Java/RSA】非对称加密方法RSA加解密例程
例程下载:https://files.cnblogs.com/files/heyang78/ufo_RSA_210930.rar
程序:
package ufo;import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import javax.crypto.Cipher;
import org.apache.commons.codec.binary.Base64;
public class RSA_TEST {
public static void main(String... args) {
String original="Let’s Build a Giant Airship 青海长云暗雪山";
System.out.println("原文=\t"+original);
try {
KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA");
keyPairGen.initialize(1024);//生成大小 1024
KeyPair keyPair = keyPairGen.generateKeyPair();
RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();//获取公钥
System.out.println("RSA公钥:"+Base64.encodeBase64String(publicKey.getEncoded()));
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
Cipher cipherEncode = Cipher.getInstance(keyFactory.getAlgorithm());
cipherEncode .init(Cipher.ENCRYPT_MODE, publicKey);
byte[] EncodeResults =cipherEncode .doFinal(original.getBytes());
System.out.println("密文=\t"+Base64.encodeBase64String(EncodeResults));
RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();//获取私钥
System.out.println("RSA私钥:"+Base64.encodeBase64String(privateKey.getEncoded()));
Cipher cipherDecode = Cipher.getInstance("RSA");
cipherDecode.init(Cipher.DECRYPT_MODE, privateKey);
byte[] DecodeResults = cipherDecode.doFinal(EncodeResults);
System.out.println("解密后=\t"+new String(DecodeResults));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
输出:
原文= Let’s Build a Giant Airship 青海长云暗雪山RSA公钥:MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDNZc6JPRecYxLpPj/JRfs2erjQgP2HEUW6CZS76FJV+x4vk9N31qP9R2lW2pJJoPnS+8LOcAuOOctc1ov/Vc7nhqk/zWchr6qyd8kuAjzElfdRLtgqQeIHPRxXKT0HW6HZChoR7vT75lXm78mLMjI82GXxPUQ9ihnOyv/G9YSpFwIDAQAB
密文= KCuUnlPKfq+RcMf3VMNqP98rxtksDw4OG5Nj9w027+BZFzDmuUuCLFmAM/diWKRhxJDOOest5YFNJ4iYZFJDoqZxyK+EGpxMfSEknU/UixvAxP+r4FJf9DGFkwhVRwIty6ITnwywdZjSMmAXambcz8IQ5qr7iyuP4Xr4uCT/ktg=
RSA私钥:MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAM1lzok9F5xjEuk+P8lF+zZ6uNCA/YcRRboJlLvoUlX7Hi+T03fWo/1HaVbakkmg+dL7ws5wC445y1zWi/9VzueGqT/NZyGvqrJ3yS4CPMSV91Eu2CpB4gc9HFcpPQdbodkKGhHu9PvmVebvyYsyMjzYZfE9RD2KGc7K/8b1hKkXAgMBAAECgYB022UkQ3O5b8yEkvvrYTtJhYy8Y4baX4NSEr1iIw0lCdfkra/0UFPAd+6AkZ4E8ebwmHf+x1RruInw6ceAn6s0nH6W0zIZxkDzhY/gLe1G2D4PcUPAx8ZYU9+cozDOyIQNwJhKy2xpgO8NYdUhGjEdrPK+nlcqfSDq3upvEL9j8QJBAPe6YVEZEQ5w1zhjjEea0BGfRU/61IbIDR9qvisg44XfToo8UDgxyB78Y08vdVzQVVtS4HstMNDzq0oB3AbC90UCQQDUQZRrFDvv51Sa1yrM2DeulxO3S50jkIIgftP6fRJ7l4SMmF/nriUsNITQ4QfRcKAjY8+Q/KpY69yDHH+R9GarAkEAojuN1dVrpSBi4cvXp2EMWC4M71bd7bJ/XY7DIW11c0uNnNvo0RRQ8XHp+4ah/nl1HMyGtEQhDwY0q8/R7x+pXQJAHKWBL3Z6pGU3QPKbPyxLT4/qREm7OoqNVW9okp0Aupd3dzY1c2JIeA/agQpt8LFfm4ckA3BmWTvz9eoJuZwfowJBAOKYoBJ5FSN2XTIC4qkwacWu01ferxJ0DC6pLCqDaU1ygJL584NW1nlMnC91B99E2obT99MXfHwaS02RO3GVLHQ=
解密后= Let’s Build a Giant Airship 青海长云暗雪山
END
以上是 【Java/RSA】非对称加密方法RSA加解密例程 的全部内容, 来源链接: utcz.com/z/390761.html