Bueno,ante todo dar las gracias a los miembros de este foro por ayudarme con algunas dudas que me han surgido a la hora de hacer este programa. :D :D :D
package RSA;
import java.math.BigInteger;
import java.util.Random;
import java.util.ArrayList;
import ClavePublica.ClavePublica;
import ClavePrivada.ClavePrivada;
import Euler.Euler;
/**
* Codificación en RSA
*
* Autor: Tronos154
*/
public class RSA {
public int bitsLength
= (int) Math.
random() * 56 + 200;
public BigInteger modulo
= primo1.
multiply(primo2
);
public BigInteger euler
= Euler.
Euler(primo1, primo2
);
public BigInteger clavePublica
= ClavePublica.
ClavePublica(euler
); public BigInteger clavePrivada
= ClavePrivada.
ClavePrivada(clavePublica, euler
);
char letra;
int letra2 = 0;
int contador = 0;
while (contador < texto.length()) {
letra = texto.charAt(contador);
letra2 = letra;
letra3
= String.
valueOf(letra2
); textoEncriptado = textoEncriptado + (numero.modPow(clavePublica, modulo)).toString() + " ";
contador++;
}
return textoEncriptado;
}
String textoDesencriptado
= ""; char letra = 0;
for (int i = 0; i < textoEncriptado.length(); i++) {
if (textoEncriptado.charAt(i) == 32) {
letra = (char) (int) (numero.modPow(clavePrivada, modulo).longValue());
textoDesencriptado = textoDesencriptado + letra;
textoAlmacen = "";
} else {
textoAlmacen = textoAlmacen + textoEncriptado.charAt(i);
}
}
return textoDesencriptado;
}
}
Librerías que se han creado para el programa:
Clave Publica:
package ClavePublica;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Random;
/**
* Generador Clave Publica
*
*
* Autor : Tronos154
*
*/
public class ClavePublica {
while (enc == false && Euler2.compareTo(ONE) == 1) {
if ((euler.gcd(Euler2)).toString().equals("1")) {
enc = true;
} else {
Euler2 = Euler2.subtract(ONE);
}
}
return Euler2;
}
}
Clave Privada:
package ClavePrivada;
import java.math.BigInteger;
/** Clave Privada
*
* Autor : Tronos154
*
*/
public class ClavePrivada {
BigInteger clavePrivada
= clavePublica.
modInverse(euler
); return clavePrivada;
}
}
Función Euler :
package Euler;
import java.math.BigInteger;
import java.util.ArrayList;
/**
*
* Autor : Tronos154
*/
public class Euler {
Euler = (primo1.subtract(ONE)).multiply(primo2.subtract(ONE));
return Euler;
}
}