Hacer MD5 desde Javascript

  • Por
Cómo calcular la llave MD5 de cualquier cadena de caracteres desde Javascript, por medio de las librerías PHP.js.
Si necesitas calcular el MD5 de una cadena de caracteres mediante Javascript lo tienes fácil gracias a las librerías PHP.js, que convierten las funciones nativas de PHP al lenguaje Javascript. En este artículo te explicaremos cómo hacerlo.

En el caso que te hayas planteado alguna vez realizar una conversión desde Javascript de un dato en su correspondiente "Hash de salida" MD5, habrás observado que no existe ninguna función nativa que te ayude a hacerlo. Sin embargo, eso no quiere decir que otros programadores no hayan detectado esa necesidad y realizado alguna función para cubrirla.

Nota: MD5 es un algoritmo de reducción criptográfica de 128 bits. Es muy utilizado para almacenamiento de claves, de modo que no se almacene el valor exacto de una contraseña, sino su llave MD5.

Versión en Javascript de la función md5() de PHP

Gracias a las librerías PHP.js, que se han presentado junto con varios ejemplos en el Manual de PHP.js, tenemos una implementación sencilla de la función md5() de PHP dentro del lenguaje de programación Javascript.

En este caso nos interesa la función md5() portada desde PHP para Javascript y podemos descargarla desde la sección "compile" de PHP.js. En principio podemos obtener esa función de manera independiente, si no necesitamos otras funciones de la librería. Para ello seleccionamos el "template" por defecto llamado "none" (que quita todas las funciones de la librería PHP.js) y luego seleccionando la función "md5", que está dentro de la clasificación "Strings".

Nota: Para utilizar la función md5() necesitamos descargar dicha función de PHP.js y además agregar las dependencias. En este caso la única función que depende es utf8_encode(), que se selecciona automáticamente en el momento en el que marcamos md5.

Una vez que tenemos el paquete con las dos funciones necesarias, md5() y utf8_encode(), podemos invocar a la función Javascript md5() pasando como parámetro la cadena a pasar por MD5.

md5("cadena a pasar por MD5");

Ejemplo de página que convierte un dato su Hash MD5 con Javascript

Ahora podemos ver un ejemplo de página que nos sirve para probar la función md5().

Disponemos de un formulario con un campo de texto y un botón. Al pulsar el botón se convierte a MD5 el dato que haya escrito en el campo de texto.

Nota: Como se puede ver, en la cabecera se está incluyendo el script Javascript llamado md5.pack.js, que hemos descargado con la función md5() y su dependiente utf8_encode(), directamente de PHP.js.

<html>
<head>
<title>md5 en javascript</title>
   <script src="md5.pack.js" type="text/javascript"></script>
   <script>
   function convierteMd5(formulario){
      alert("El Hash MD5 es:n" + md5(formulario.md5txt.value));
   }
   </script>
</head>
<body>
<h1>md5 en javascript</h1>
   <form>
      Cadena: <input type="text" name="md5txt">
      <input type="button" onclick="convierteMd5(this.form)" value="Convierte a md5">
   </form>
   <br>
   <a href="http://www.desarrolloweb.com">DesarrolloWeb.com</a>. Explora el <a href="http://www.desarrolloweb.com/manuales/manual-librerias-phpjs.html">manual PHP.js</a>
</body>
</html>

Nota: el código de la función md5(), por si a alguien le interesa, lo podemos ver listado en http://phpjs.org/functions/md5

Si lo deseas, puedes ver este ejemplo en una página aparte.