Código fuente de contraseña
import javax.crypto.*;
/**
*Este ejemplo explica cómo utilizar el cifrado de clave privada DES algoritmo Realizar cifrado y descifrado.
*
* @autor alemán
* @Versión 1.0 03/04/10
*/
Clase pública SingleKeyExample {
Public static void main(String[] args) {
Prueba {
String Algoritmo = " DES//Definir algoritmo de cifrado, puede ser DES, DES, DESede, Blowfish
Mensaje de cadena = "Hola mundo. Esta es la información que se va a cifrar";
//Generar clave DES.
generador de claves generador de claves = generador de claves. getinstance(algoritmo);
clave generador .init(56); //Seleccione el algoritmo DES, la longitud de la clave debe ser 56 bits
clave clave = generador de claves() //Generar clave
/. /Generar un objeto de cifrado
cipher cipher = cipher . getinstance(" DES "
//Utilice la clave para cifrar el texto sin formato y generar el texto cifrado
<. p>cipher.init(cipher.ENCRYPT_MODE,key); // El modo de operación es cifrado (cipher.encrypt_mode) y la clave es la clavebyte[] ciphertext = cipher.do final( message . getbytes()); //Obtener la matriz de bytes cifrados
System.out.println("Información cifrada: "Nueva cadena (texto cifrado));
//Usar el clave para cifrar el texto sin formato y generar los bytes de cifrado
cipher.init(password.DECRYPT_MODE,key); // El modo de operación es descifrado y la clave es la clave
< p. >byte[]texto fuente = cipher . do final(ciphertext); //Obtener la matriz de bytes descifradaSystem.out.println("Información descifrada:" nueva cadena (texto fuente) ); p>
} catch (Excepción ex) {
ex . printstacktrace()
}
}
}<. /p>
/**
* @author Alemán
*/
Importar seguridad Java *;
p><. p>Importar Java.security.spec.*;Importar javax.crypto.*;
Clase pública PairKeyExample {
Principal vacía estática pública (String argv []) {
Probar{
String Algoritmo = " RSA//Definir algoritmo de cifrado, que puede ser DES, DES, DESede, Blowfish.
String message = "Hola, Zhang San, soy Li Si";
//Generar el par de claves de Zhang San.
Generador de pares de claves key generater =
KeyPairGenerator.getInstance(algorithm); //Especifique el algoritmo que se utilizará.
keygenerator Zhang .inicializar(1024); //La longitud de la clave especificada es 1024 bits.
par de claves par de claves Zhang = keygeneratorzhang . generatekeypair();//Generar par de claves
System.out.println("Generar par de claves públicas de Zhang San");
//Zhang San genera una publicKeyZhang y la envía a Li Si, y los bytes de la matriz de la clave pública se envían aquí.
byte[]clave públicazhangencode = par de claves Zhang get public(). get encoded();
//Envía el código de clave pública a Li Si a través de la red o el disco.
//Li Si recibe la clave pública codificada de Zhang San y la decodifica.
fábrica de claves keyFacoryLi = fábrica de claves getinstance(algoritmo); //Obtiene el objeto KeyFactory.
X509EncodedKeySpec x509KeySpec =
new x 509 encodedkeyspec(publicKeyZhangEncode); //La clave pública está codificada por X.509
clave pública clave pública Zhang = keyfacoryli .generar public(x509 key spec); //Convierte el objeto KeySpec de la clave pública en una clave pública.
System.out.println("Li Si decodificó exitosamente y obtuvo la clave pública de Zhang San");
//Li Si cifró la información con la clave pública de Zhang San y la envió a Li Cuatro.
cipher cipher = cipher . getinstance(" RSA/ECB/pkcs 1 padding "); //Obtener el objeto de contraseña
cipher.init(password.ENCRYPT_MODE, clave pública Zhang) ; //Inicializa el objeto Cipher con la clave pública de Zhang San.
byte[]cipher message = cipher . do final(message . getbytes()); //Obtener información cifrada
System.out.println("Mensaje cifrado:" nuevo carácter String (mensaje cifrado));
System.out.println("Cifrado y enviado a John Doe...");
//Zhang Dou lo descifra con su propio mensaje privado. Información clave recibida de John Doe.
cipher.init(contraseña. DECRYPT_MODE, par de claves Zhang. get private()); // Zhang San inicializa el objeto cifrado con su propia clave privada.
byte[]mensaje original = cipher . do final(mensaje cifrado);//Obtener la información descifrada
System.out.println("Zhang San recibió el mensaje descifrado como" nueva cadena (mensaje original));
} catch (Excepción ex) {
ex . printstacktrace();
}
. }
}