Simple and complete code. Through this code, you will have a preliminary understanding of the implementation methods of RSA encryption algorithm in Java. You can use this class directly. If you have high-level levels, modify and improve the code yourself.
package security;import java.security.*;import java.security.spec.*;import java.security.interfaces.*;import javax.crypto.spec.*;import javax.crypto.interfaces.*;import java.io.*;import java.math.*;public class RSADemo {public RSADemo() {}public static void generateKey() {try {KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");kpg.initialize(1024);KeyPair kp = kpg.genKeyPair();PublicKey pbkey = kp.getPublic();PrivateKey prkey = kp.getPrivate();// Save the public key FileOutputStream f1 = new FileOutputStream("pubkey.dat");ObjectOutputStream b1 = new ObjectOutputStream(f1);b1.writeObject(pbkey);// Save the private key FileOutputStream f2 = new FileOutputStream("privatekey.dat");ObjectOutputStream b2 = new ObjectOutputStream(f2);b2.writeObject(prkey);} catch (Exception e) {}}public static void encrypt() throws Exception {String s = "Hello World!";// Get the public key and parameters e,nFileInputStream f = new FileInputStream("pubkey.dat");ObjectInputStream b = new ObjectInputStream(f);RSAPublicKey pbk = (RSAPublicKey) b.readObject();BigInteger e = pbk.getPublicExponent();BigInteger n = pbk.getModulus();System.out.println("e= " + e);System.out.println("n= " + n);// Get plaintext mbyte ptext[] = s.getBytes("UTF-8");BigInteger m = new BigInteger(ptext);// Calculate the ciphertext cBigInteger c = m.modPow(e, n);System.out.println("c= " + c);// Save the ciphertext String cs = c.toString();BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("encrypt.dat")));out.write(cs, 0, cs.length());out.close();}public static void decrypt() throws Exception {// Read the ciphertext BufferedReader in =new BufferedReader(new InputStreamReader(new FileInputStream("encrypt.dat")));String ctext = in.readLine();BigInteger c = new BigInteger(ctext);// Read the private key FileInputStream f = new FileInputStream("privatekey.dat");ObjectInputStream b = new ObjectInputStream(f);RSAPrivateKey prk = (RSAPrivateKey) b.readObject();BigInteger d = prk.getPrivateExponent();// Get private key parameters and decrypt BigInteger n = prk.getModulus();System.out.println("d= " + d);System.out.println("n= " + n);BigInteger m = c.modPow(d, n);// Show decryption results System.out.println("m= " + m);byte[] mt = m.toByteArray();System.out.println("PlainText is ");for (int i = 0; i < mt.length; i++) {System.out.print((char) mt[i]);}}public static void main(String args[]) {try {generateKey();encrypt();decrypt();} catch (Exception e) {System.out.println(e.toString());}}}}The above article on the simple implementation method of Java RSA encryption algorithm (must read) is all the content I share with you. I hope you can give you a reference and I hope you can support Wulin.com more.