El MD5 Message-Digest algoritmo es un algoritmo de cifrado de una vía de uso frecuente para la creación de claves secretas , que son llamadas hashes MD5. Dado que el cifrado es una manera, dos cadenas de texto diferentes pueden producir el mismo hash MD5 , lo que significa que no puede descifrarlo . Hay un número infinito de formas de producir el mismo hash. Sin embargo , los hackers tienen maneras de descubrir las cadenas utilizadas para crear hashes , por lo que paga para crear con cuidado. PHP : Hypertext Preprocessor es un lenguaje de programación que soporte los algoritmos de cifrado MD5 y otros tanto . Instrucciones
1
Crear una cadena de sal, que es una cadena inimaginable utilizada para el cifrado. La cadena de sal se utiliza para la creación de valores hash , así como la determinación de su validez . Una forma de crear una buena cadena de sal es de un montón de codificación de caracteres aleatorios con la función md5 de PHP. El resultado de la función es un número hexadecimal de 32 dígitos , que le da más de 3,40 x 10 ^ 38 combinaciones posibles . Por ejemplo , incluir algo como lo siguiente en su código PHP :
$ salt = md5 ( " 4hJUd5sPP97hT ");
2
combinar el texto con la cadena de sal con el operador de concatenación , que es en realidad un punto y cifrarlo con la función md5 . Por ejemplo, si va a encriptar contraseñas , escriba:
$ password = " Us54EEh5R " ;
$ cifrada md5 = ( . $ Password $ salt ) ;
"Rainbow mesas " son bases de datos utilizadas para el craqueo de hashes MD5 , el más grande de los que tienen entre 10 y 20 mil entradas. Incluso si una base de datos tenía 100 mil millones de hashes MD5 distintas, eso es menos de uno de cada 10 ^ 27 de las combinaciones posibles . Si una gota de agua es aproximadamente 1/10 cm ^ 3 , se necesitarían alrededor de 1,4 x 10 ^ 25 gotas para llenar los océanos de la Tierra. Por lo tanto , arco iris tablas representan menos de una caída en todos los océanos de la Tierra . Si la cadena de sal es buena , no hay casi ninguna posibilidad de que el hash cifrado se encuentra en una base de datos. Incluso si una de las bases de datos tenían el mismo hash , la cadena que se utiliza para crear sería diferente de la que en la base de datos , debido a que no pueden desperdiciar espacio valioso de base de datos sobre las infinitas combinaciones de contraseñas MD5 - salados . Esas bases de datos están persiguiendo objetivos mucho más simples .
3
Verifique hash según sea necesario , creando el hash como lo hacía antes y comparándolo con el original. En el caso de contraseñas , almacenar las contraseñas cifradas en una base de datos . Cuando alguien trata de usar una contraseña, encriptar la contraseña introducida con la sal , y compararlo con la copia de la base de datos . De esta manera, incluso el administrador de base de datos no sabe nada de las contraseñas . Por ejemplo , escriba:
$ encrypted_entry = md5 ($ entrada $ salt . ) ;
If ($ encrypted_entry == $ encriptado ) $ válidos = TRUE;
más $ válidos = FALSE ;