Tecnología

Inicio

Cómo crear claves secretas en PHP

Cómo crear claves secretas en PHP


El MD5 Message-Digest Algorithm es un algoritmo de cifrado de una vía a menudo se utiliza para la creación de claves secretas, que se llaman hash 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 formas de descubrir las cadenas utilizadas para crear hashes, así que paga crearlos con cuidado. PHP: Hypertext Preprocessor es un lenguaje de programación compatible con MD5 y otros algoritmos de cifrado también.

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 hashes, así como la determinación de su validez. Una forma de crear una buena cadena de sal es trepando un montón de caracteres aleatorios con la función md5 de PHP. La salida 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:

$ Sal = MD5 ( "4hJUd5sPP97hT");

2 Combinar el texto con la cadena de sal con el operador de concatenación, que es en realidad un período, y cifrarlo con la función MD5. Por ejemplo, si va a cifrar contraseñas, escriba:

$ Password = "Us54EEh5R";
$ Cifrado = md5 ($ $ contraseña sal.);

"Tablas del arco iris" son bases de datos utilizadas para el craqueo de hash MD5, el mayor de los cuales tienen entre 10 y 20 millones de entradas. Incluso si una base de datos contaba con 100 millones de hash MD5 distintas, eso es menos de uno de cada 10 ^ 27 de las combinaciones posibles. Si una gota de agua es de 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, las tablas del arco iris ascienden a menos que una gota 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 de la base de datos, ya que no pueden desaprovechar el espacio de base de datos valiosa sobre las infinitas combinaciones de contraseñas MD5-salado. Esas bases de datos están persiguiendo objetivos mucho más simples.

3 Comprobar valores hash, según sea necesario, creando el hash como lo hacía antes y comparándolo con el original. En el caso de las 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 la base no conoce ninguna de las contraseñas. Por ejemplo, escriba:

$ Encrypted_entry = md5 ($ $ entrada sal.);
if ($ encrypted_entry == $ encriptada) $ válida = TRUE;
otra cosa válida $ = FALSO;