The::Beastieux

Sangre de Bestia + Corazón de Pingüino | Un blog acerca de Linux, *BSD, Open Source, Software Libre, Programación …

Código Java – Función de Encriptación mediante MD5


Este es el Ejemplo #09 del Topic: Programación Gráfica en Java.

El tema de hoy tampoco trata específicamente de programación gráfica, pero en pleno desarrollo de un proyecto podría necesitarlo. Se trata de un mecanismo de encriptación no reversible aunque a lo largo de los años han sucedido una serie de ataques para pasar la barrera de seguridad que proponía. A pesar de que es un método de cifrado no reversible es muy sensible al ataque por colisiones, sin embargo puede ser usado aún por ejemplo para comprobar la integridad de un archivo descargado de esa manera evitamos obtener archivos dañados o corruptos alterados maliciosamente mediante su cheksum o como paso previo a la autentificación de un usuario al coincidir el hash.

Observemos la codificación en java de la función getMD5 que retorna un String hash:

...
    public String getMD5(String cadena) throws Exception {

        MessageDigest md = MessageDigest.getInstance("MD5");
        byte[] b = md.digest(cadena.getBytes());

        int size = b.length;
        StringBuilder h = new StringBuilder(size);
        for (int i = 0; i < size; i++) {

            int u = b[i] & 255;

            if (u < 16)
            {
                h.append("0").append(Integer.toHexString(u));
            }
            else
            {
                h.append(Integer.toHexString(u));
            }
        }
        return h.toString();
    }
...

Código de Ejemplo:

package beastieux.gui;

import java.security.MessageDigest;
import javax.swing.JOptionPane;

/**
 *
 * @author beastieux
 */
public class Ejm09_EncriptacionMD5 {

    public String getMD5(String cadena) throws Exception {

        MessageDigest md = MessageDigest.getInstance("MD5");
        byte[] b = md.digest(cadena.getBytes());

        int size = b.length;
        StringBuilder h = new StringBuilder(size);
        for (int i = 0; i < size; i++) {

            int u = b[i] & 255;

            if (u < 16)
            {
                h.append("0").append(Integer.toHexString(u));
            }
            else
            {
                h.append(Integer.toHexString(u));
            }
        }
        return h.toString();
    }

    public static void main(String args[]) {
        Ejm09_EncriptacionMD5 obj = new Ejm09_EncriptacionMD5();

        try {
            JOptionPane.showMessageDialog(null, obj.getMD5("palabrasecreta"));
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }

    }

}

One Response to Código Java – Función de Encriptación mediante MD5

  1. Anónimo febrero 24, 2012 a las 3:03 pm

    muy bien el codigo puedes hacerr uno que desencripte

No te quedes callado. Pregunta, Comenta, Comparte, Sígueme, Suscríbete, Déjame tu opinión... Soy Beastieux Zeroo...

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.

Únete a otros 65 seguidores