Código simple y completo. A través de este código, tendrá una comprensión preliminar de los métodos de implementación del algoritmo de cifrado RSA en Java. Puedes usar esta clase directamente. Si tiene niveles de alto nivel, modifique y mejore el código usted mismo.
Seguridad del paquete; 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 rsemo () () void generateKey () {try {keyPairGenerator kpg = keyPairGenerator.getInstance ("rsa"); kpg.initialize (1024); keyypair kp = kpg.genKeyPair (); publickey pbkey = kp.getPublic (); privateKey prKE FileOutputStream ("pubKey.dat"); ObjectOutputStream B1 = new ObjectOutputStream (F1); B1.WriteObject (PBKEY); // Guardar la clave privada FileOutputStream F2 = new FileOutPutStream ("privateKey.dat"); ObjectUutStream B2 = new ObjectUpputPutPetStream (f2); b2.WriteOcject (Preckey.DAT "); OpectStream B2 = new ObjectUpputPutTputStream (F2); B2.WRITEOCJECT (PRECKEY);};};} {}} public static void encrypt () lanza la excepción {String S = "¡Hello World!"; // Obtenga la clave pública y los parámetros E, nFileInputStream F = new FileInputStream ("PubKey.Dat"); ObjectInputStream B = New ObjectInputStream (f); RSAPublicKey pbk = (rsapublickey) B.ReadObject (); pbk.getPublicExponent (); bigInteger n = pbk.getModulus (); system.out.println ("e =" + e); system.out.println ("n =" + n); // get get mbyte ptext [] = s.getBytes ("utf-8"); biginteger M = newinteger (pleintsxt); 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 descrypt () lanza la excepción {// lee el texto cifrado de texto bufferedReader in = new BufferedReader (new InputStreamReader (new FileInputSteam ("CiNPT.DAT")); String ctext = in.readline (); bigInteger c = new BigInteger (ctext); FileInputStream f = new FileInputStream ("privateKey.dat"); ObjectInputStream b = new ObjectInputStream (f); rsaprivateKey prk = (rsaprivatekey) B.ReadObject (); bigInteger d = prk.getPrivateExponent (); // obtener parámetros clave privados y descrypt 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 "); para (int i = 0; i <mt.length; i ++) {system.out.print ((char) mt [i]);}} public static void main (string args []) {try {generateKey (); cifrypt (); descrypt ();} capt (excepción e) {system.out.println (e.toString ());}}}}El artículo anterior sobre el método de implementación simple del algoritmo de cifrado Java RSA (debe leer) es todo el contenido que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.