Red de conocimiento informático - Problemas con los teléfonos móviles - Código fuente de contraseña

Código fuente de contraseña

import java.security.*;

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 clave

byte[] 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 descifrada

System.out.println("Información descifrada:" nueva cadena (texto fuente)

} 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();

}

. }

}