【Java/RSA】非对称加密方法RSA加解密例程

java

例程下载: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

回到顶部