Mostrando entradas con la etiqueta Encriptación. Mostrar todas las entradas
Mostrando entradas con la etiqueta Encriptación. Mostrar todas las entradas

martes, 17 de enero de 2012

Criptografía simétrica y asimétrica

La criptografía se usa para ntercambiar mensajes que sólo puedan ser leídos por usuarios a las que van dirigidos y que poseen los medios para descifrarlos.

Mediante una clave secreta, ciframos un mensaje y después podemos descrifrar el mensaje con la misma clave u otra distinta. De esta forma hay dos tipos de algoritmos, según cantidad de claves:
  • Critografía simétrica
  • Criptografía asimétrica
Ahora os voy a explicar brevemente cada uno y al final tenéis una comparativa entra las dos.

miércoles, 11 de enero de 2012

Ejemplo MD5 en Java

MD5 es uno algoritmo de reducción criptográfico.

MD5 se utiliza para comprobar que lo que descargamos de internet es el archivo original y no un troyano. También se utiliza para comprobar claves guardando el valor hash en disco y comparando con éste. Aplicando MD5 obtenemos un valor hash de 32 dígitos hexadecimales. Este valor se envía junto con el archivo. El usuario compara el valor hash del archivo obtenido con el valor hash que le han proporcionado y si no son iguales estamos seguros que el archivo ha sufrido un cambio y no es el original.
import java.io.FileInputStream;
import java.io.UnsupportedEncodingException;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
 
public class MD5 {
    public static String getMD5(String entrada) {
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            byte[] messageDigest = md.digest(entrada.getBytes());
            BigInteger number = new BigInteger(1, messageDigest);
            String hashtext = number.toString(16);
            while (hashtext.length() < 32) {
                hashtext = "0" + hashtext;
            }
            return hashtext;
        }
        catch (NoSuchAlgorithmException e) {
            throw new RuntimeException(e);
        }
    }
 
    public static void main(String[] args) throws NoSuchAlgorithmException {
        System.out.println(getMD5("Nuestra Clave"));
    }
}

Podemos cambiar el algoritmo MD5 por MD2, MD4, SHA...