Contraseñas encriptadas con Java
¿Quién no ha querido encriptar texto o archivo? Hay diversas maneras para hacer eso, por ejemplo, utilizando un diccionario donde se reemplazara cada caracter por un código.. y para poder desencriptarlo se debería utilizar el mismo diccionario para revertir el proceso. Pero si el diccionario cae en manos de alguien que no queremos que lo sepa, entonces estamos en peligro.
Cuando yo programaba en pascal, mi encriptación favorita era invirtiendo los bits... pero cualquiera también puede invertir los bits y listo.
Pero ya gente experta logró algoritmos de encriptación populares. Los más conocidos: MD5 y SHA.
En este post hablaremos cómo encriptar texto, sobretodo las contraseñas, utilizando MD5 o SHA.
La historia de la criptografía es bastante larga e interesante, pero para nuestro día a día, solo necesitamos cómo utilizar las bibliotecas existentes en el mercado.
Hace un tiempo, hice un post de ello (MD5 en Java) que consistía en utilizar el mismo API de Java para generar MD5.Pero ahora mostraré una biblioteca muy útil proporcionada por la fundación ASF.
Descomprimimos el archivo y tomamos el .jar llamado
La clase
Para comprobarlo, yo utilizo la consola de MySQL
Su contraparte, en MySQL, se utiliza la función sha2(). Ojo, esta función recién está disponible en la versión 5.5.5.
Cuando yo programaba en pascal, mi encriptación favorita era invirtiendo los bits... pero cualquiera también puede invertir los bits y listo.
Pero ya gente experta logró algoritmos de encriptación populares. Los más conocidos: MD5 y SHA.
En este post hablaremos cómo encriptar texto, sobretodo las contraseñas, utilizando MD5 o SHA.
La historia de la criptografía es bastante larga e interesante, pero para nuestro día a día, solo necesitamos cómo utilizar las bibliotecas existentes en el mercado.
Hace un tiempo, hice un post de ello (MD5 en Java) que consistía en utilizar el mismo API de Java para generar MD5.Pero ahora mostraré una biblioteca muy útil proporcionada por la fundación ASF.
Commons Codec
Podemos descargar su biblioteca desde aquí http://commons.apache.org/codec/download_codec.cgiDescomprimimos el archivo y tomamos el .jar llamado
commons-codec-1.5.jar
y lo agregamos al proyecto. En NetBeans solo le damos clic derecho en Libraries
del Proyecto y seleccionamos el .jar.La clase
DigestUtils
es nuestra clase principal para utilizar los diferentes algoritmos de encriptación.MD5
String texto="Saludos desde Apuntesdejava.com";
String encriptMD5=DigestUtils.md5Hex(texto);
System.out.println("md5:"+encriptMD5);
La salida resultante es:md5:e5adf3f9fe476c7816eacd3873f5b51f
Para comprobarlo, yo utilizo la consola de MySQL
SHA-HEX
Similar al MD5, solo es otro método String texto="Saludos desde Apuntesdejava.com";
String encript=DigestUtils.shaHex(texto);
System.out.println("shaHex:"+encript);
La salida resultante es:shaHex:2b05363b154309d7fc069cd922f316fa3f3ff866
Y en MySQL:SHA-256 / 512
Para el SHA 256 se utiliza el métodoDigestUtils.sha256
, y para 512, se utiliza DigestUtils.sha512
. Los resultados son como siguen:sha-256:9a4557a0f654365312b430b80f0da46be2c3a9db6a083f545145398fc66c92d8
sha-512:4c0a2187e03531011c7787752b66e8848a5f146e8aa08e5b5615030c5daa9cd756150e225943b5182de2434d925a4d6889b2d129ed87f23943bce9a8342b02bd
Como podemos ver.. a mayor bits, mayor confiabilidad.Su contraparte, en MySQL, se utiliza la función sha2(). Ojo, esta función recién está disponible en la versión 5.5.5.
Excelente aporte y para poder desencriptar cadena como se hace???
ردحذفأزال المؤلف هذا التعليق.
ردحذف