Básicamente, existen 2 tipos diferentes de cifrado: cifrado asimétrico y simétrico. Este cifrado es compatible con Java.

Los diferentes algoritmos de encriptación que soportan java son:

1. DES: con un tamaño de clave de 56 bits, DES se considera un algoritmo de cifrado bajo.

2. Triple DES: ocupa el tamaño de la clave de 112/168, pero proporciona una seguridad equivalente a 80/112, lo que también lo hace más lento.

3. AES: reserva el tamaño de clave de 128 bits, 198 bits y 256 bits, que se considera como un algoritmo más rápido. Aunque es más rápido, su velocidad depende del tamaño de la clave.

4. Blowfish: con un tamaño de clave de 128 bits hasta 448 bits, se considera un algoritmo mejor y más rápido. Blowfish ahora es reemplazado por Twofish.

5. RC4: tamaño de clave de 40 bits a 1024 bits, RC4 es el algoritmo de encriptación más rápido compatible con Java.

Ahora, cuando se trata de elegir entre estas diferentes técnicas de encriptación, DES y Triple DES están desactualizados.

Los mejores algoritmos son los que vienen con Java.

DES y 3DES han quedado obsoletos y se sabe que están descifrados sin una clave, por lo que debe omitirlos.

AES es el estándar de la industria a partir de ahora, ya que permite el cifrado de 128 bits. Aquí hay un ejemplo de cifrado AES en java.

Aparte de eso, si está intentando cifrar una contraseña, debe usar una función de hash para crear el hash de la cadena de contraseña cifrada. MD5 hash se utiliza principalmente para esto. Al comparar, puede cifrar la contraseña de entrada, el hash con MD5 y compararla con el valor almacenado en la base de datos con la contraseña.

Sin embargo, el hash MD5 es fácilmente crackeable, pero proporciona una primera línea de defensa contra el criptoanálisis.

A continuación se muestra un ejemplo que utiliza el cifrado AES.

Cifrado de cadena estática pública (clave de cadena, cadena initVector, valor de cadena) {
tratar {
IvParameterSpec iv = new IvParameterSpec (initVector.getBytes (“UTF-8”));
SecretKeySpec skeySpec = new SecretKeySpec (key.getBytes (“UTF-8”), “AES”);

Cipher cipher = Cipher.getInstance (“AES / CBC / PKCS5PADDING”);
cipher.init (Cipher.ENCRYPT_MODE, skeySpec, iv);

byte [] encrypted = cipher.doFinal (value.getBytes ());
System.out.println (“cadena cifrada:”
+ Base64.encodeBase64String (encriptado));

devolver Base64.encodeBase64String (encriptado);
} catch (Exception ex) {
ex.printStackTrace ();
}

retorno nulo
}

El algoritmo de cifrado más seguro, y el más imposible de construir en la vida real, es un pad de XOR infinito, una sola vez, cifrado en el texto plano.

Si está hablando de criptografía de clave pública, que es el tipo de cifrado que le preocuparía en la mayoría de las aplicaciones de Internet, en un tipo que ha sido validado y no intencionalmente debilitado, la longitud de la clave es mucho más importante que la fuerza o la debilidad. del algoritmo.

Algunos algoritmos permiten hasta un tamaño determinado de clave, por lo que desea que los que tienen una longitud de clave ilimitada. Haciendo una búsqueda rápida, no puedo encontrar ninguna que la apoye directamente.

Ya que es el único hash que admite tamaños de clave ilimitados, probablemente habrá algunos basados ​​en SHA-3 una vez que esté completamente implementado.

Dejar respuesta

Please enter your comment!
Please enter your name here