Hoy vamos a ver a gran escala cómo viaja la información y los diferentes métodos de encriptación existentes. Existen diferentes formas de encriptar datos con diferentes lenguajes de programación, en esta ocasión en particular utilizaremos PHP como lenguaje de programación y el método hash MD5 como código de encriptación.
La seguridad por la que viaja la información a través del internet sin duda es muy importante, ya que nos da tranquilidad y confianza al saber que datos personales y confidenciales como los datos de la tarjeta de crédito, cuentas bancarias, contraseñas, entre otros tipos de información, están siendo cifradas y hay muy pocas, pero mínimas probabilidades de que sean descifradas por algún hacker y quede toda la data expuesta.
Entonces podemos decir que la encriptación es un proceso en donde uno o varios archivos son codificados a través de un algoritmo que modifica la información original y hace imposible su lectura a menos que cuentes con la autorización o mejor dicho con la llave correspondiente.
[wp-svg-icons icon=»lock» wrap=»i»] ¿Cómo encriptar con MD5 usando PHP?
Encriptar datos desde php es muy sencillo, podemos encriptar toda la información que deseemos, pero lo mas usual es que se cifre la información mas sensible que haga vulnerable nuestro sistema como por ejemplo las cuentas bancarias, perfiles de usuario, etc.
Existen aplicaciones como las de PayPal o cualquier casa de tarjetas como Visa o Mastercard por ejemplo, que cuentan con su propio sistema de seguridad que vas mas allá de un simple encriptamiento. ¿Pero que pasa si tenemos formularios como los de inicio de sesión o campos como contraseñas, preguntas secretas, que son datos personales?
En ese tipo de formularios seguro que lo primero que vamos a encriptar es la contraseña del usuario. El hash MD5 es un código conformado por 32 caracteres hexadecimales, y en dicho código estará la información que le pasemos por una variable, ahora bien, para hacer la encriptación de la información en este caso la “contraseña” escribimos el siguiente código:
<?php $clave=md5('clave del usuario'); echo 'Clave encriptada: '.$clave; ?>
Y si, así de sencillo ya hemos visto cómo encriptar con MD5 la contraseña del usuario, al imprimir el resultado tendremos algo como esto:
Clave encriptada: eabd257f9f88b53e44012cbc1a92a1ae
Este seria el string que se guardaría en la base de datos. Ahora se preguntaran como hacemos para verificar que la contraseña en la misma que coloco el usuario? Como la encriptación con md5 es “One Way”, es decir, una sola vía, no hay manera de desencriptar.
Para ello tenemos que comparar el hash que esta en la base de datos. Al momento de iniciar sesión, la información que viene en el campo contraseña realiza el mismo proceso de encriptamiento que mencionamos anteriormente, pero con la diferencia de que no va a guardar el registro sino validar de que que el hash generado sea igual al que se encuentra en la base datos.
[wp-svg-icons icon=»key-2″ wrap=»i»] Métodos de encriptación
Ahora veamos algunos métodos de encriptación que no necesariamente se utilizan con php.
- Método de transposición: consiste en colocar las palabras en el sentido contrario como por ejemplo, la palabra «clave» seria de la siguiente manera «evalc».
- Método Cesar: este algoritmo es muy interesante, se trata de que a cada letra del abecedario se le asigna un numero de posiciones haciéndolo de manera circular. Veamos un ejemplo mas claro.
Definamos que el numero de posición sera el «4», ahora bien si nos referimos a la letra «a» entonces le corresponde la letra «e», si hacemos referencia a la letra «b» entonces le correspondería la letra «f» y así sucesivamente, por lo que si queremos escribir «clave» tendríamos lo siguiente «gpezi».
Como el numero de posición es configurable, el receptor debe de conocer dicho numero para poder descifrar la clave.
- Método DES: Data Encryption Standard – DES, este sistema es de alrededor de los años setenta y fue desarrollado por IBM. Su patrón de encriptamiento es de 56 bits lo que lo hace muy pequeño para la actualidad.
- Método Chaffing & Winnowing: Esta técnica consiste en mezclar la data original con relleno, de modo que solo el receptor pueda descifrarla.
- Método BÍFIDO: Este método consiste en representar una letra con una o mas caracteres especiales.
Por ultimo podemos mencionar los métodos de Firmas digitales y Sistemas de clave publicas, las cuales son las más utilizadas hoy en día.
En conclusión
La encriptación viene casi desde que se inicio el mundo, y que fueron evolucionando con el tiempo y aunque sean mas novedosos no significa que sean mas versátiles que los inventados por la vieja escuela. Como pudimos ver existen varios métodos de encriptación, unos mas usados que otros pero que la final tienen el mismo propósito. Esperamos que hoy hayas aprendido cómo encriptar con MD5 desde PHP.
Cuéntanos tu historia: ¿tienes experiencia al encriptar con md5? ¿conoces otros métodos de encriptación en desarrollo web?