Cifrar cadenas es el proceso de aplicar un método que haga intercambio de sus contenidos para generar una nueva cadena que sea difícil de entender o “descifrar”
Existen distintos algoritmos de cifrado, y en este caso revisaremos dos opciones:
- hash
- crypt
Cifrado de cadenas por medio hash en PHP
hash — Genera un valor cifrado con base a un string
Descripción
1 |
string hash ( string $algo , string $data [, bool $raw_output = false ] ) |
Parámetros
algo :
Nombre del algoritmo de cifrado seleccionado (es decir “md5”, “sha256”, “haval160,4”, etc..)
data :
Mensaje para cifrar.
raw_output :
Cuando se establece en TRUE
la salida serán datos binarios sin formato, FALSE
la salida serán dígitos hexadecimales en minúsculas.
Valores devueltos
Devuelve un string que contiene el mensaje cifrado como dígitos hexadecimales en minúsculas, a menos que raw_output
sea establecido en true, en cuyo caso la salida devuelta será el mensaje cifrado como datos binarios sin formato.
Ejemplo:
1 2 3 |
<?php echo hash('ripemd160', 'Ejemplo hash.'); ?> |
El resultado del ejemplo sería:
1 |
85e920f79d249564e2eea1a271d27786bd4d005d |
Otro ejemplo:
1 2 3 4 5 6 7 8 |
<?php $data = "hello"; foreach (hash_algos() as $v) { $r = hash($v, $data, false); printf("%-12s %3d %s\n", $v, strlen($r), $r); } ?> |
El resultado:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
md2 32 a9046c73e00331af68917d3804f70655 md4 32 866437cb7a794bce2b727acc0362ee27 md5 32 5d41402abc4b2a76b9719d911017c592 sha1 40 aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d sha256 64 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e730 sha384 96 59e1748777448c69de6b800d7a33bbfb9ff1b463e44354c3553 sha512 128 9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2d ripemd128 32 789d569f08ed7055e94b4289a4195012 ripemd160 40 108f07b8382412612c048d07d13f814118445acd ripemd256 64 cc1d2594aece0a064b7aed75a57283d9490fd5705ed3d66bf9a ripemd320 80 eb0cf45114c56a8421fbcb33430fa22e0cd607560a88bbe14ce whirlpool 128 0a25f55d7308eca6b9567a7ed3bd1b46327f0f1ffdc804dd8bb tiger128,3 32 a78862336f7ffd2c8a3874f89b1b74f2 tiger160,3 40 a78862336f7ffd2c8a3874f89b1b74f2f27bdbca tiger192,3 48 a78862336f7ffd2c8a3874f89b1b74f2f27bdbca39660254 tiger128,4 32 1c2a939f230ee5e828f5d0eae5947135 tiger160,4 40 1c2a939f230ee5e828f5d0eae5947135741cd0ae tiger192,4 48 1c2a939f230ee5e828f5d0eae5947135741cd0aefeeb2adc snefru 64 7c5f22b1a92d9470efea37ec6ed00b2357a4ce3c41aa6e28e3b gost 64 a7eb5d08ddf2363f1ea0317a803fcef81d33863c8b2f9f6d7d1 adler32 8 062c0215 crc32 8 3d653119 crc32b 8 3610a686 haval128,3 32 85c3e4fac0ba4d85519978fdc3d1d9be haval160,3 40 0e53b29ad41cea507a343cdd8b62106864f6b3fe haval192,3 48 bfaf81218bbb8ee51b600f5088c4b8601558ff56e2de1c4f haval224,3 56 92d0e3354be5d525616f217660e0f860b5d472a9cb99d6766be haval256,3 64 26718e4fb05595cb8703a672a8ae91eea071cac5e7426173d4c haval128,4 32 fe10754e0b31d69d4ece9c7a46e044e5 haval160,4 40 b9afd44b015f8afce44e4e02d8b908ed857afbd1 haval192,4 48 ae73833a09e84691d0214f360ee5027396f12599e3618118 haval224,4 56 e1ad67dc7a5901496b15dab92c2715de4b120af2baf661ecd92 haval256,4 64 2d39577df3a6a63168826b2a10f07a65a676f5776a0772e0a87 haval128,5 32 d20e920d5be9d9d34855accb501d1987 haval160,5 40 dac5e2024bfea142e53d1422b90c9ee2c8187cc6 haval192,5 48 bbb99b1e989ec3174019b20792fd92dd67175c2ff6ce5965 haval224,5 56 aa6551d75e33a9c5cd4141e9a068b1fc7b6d847f85c3ab16295 haval256,5 64 348298791817d5088a6de6c1b6364756d404a50bd64e645035f |
Cifrado de cadenas por medio crypt en PHP
crypt — Hashing de una sola vía de un string
Descripción
1 |
string crypt ( string $str [, string $salt ] ) |
crypt() devolverá el hash de un string utilizando el algoritmo basado en DES estándar de Unix o algoritmos alternativos que puedan estar disponibles en el sistema.
El parámetro salt es opcional. Sin embargo, crypt() crea contraseñas débiles sin salt. Asegúrese de especificar una sal suficientemente fuerte para una mejor seguridad.
Parámetros
str :
El string al que realizarle el hash.
salt :
Un string opcional de salt para la base del hash. Si no se proporciona, el comportamiento se define por la aplicación del algoritmo y puede conducir a resultados inesperados.
Valores devueltos
Devuelve un string con el hash o un string que es más corto que 13 caracteres y que se garantiza que difiere del salt en caso de fallo.
Ejemplo
1 2 3 4 5 6 7 8 9 10 11 |
<?php $hashed_password = crypt('mypassword'); // dejar que el salt se genera automáticamente /* Se deben pasar todos los resultados de crypt() como el salt para la comparación de una contraseña, para evitar problemas cuando diferentes algoritmos hash son utilizados. (Como se dice arriba, el hash estándar basado en DES utiliza un salt de 2 caracteres, pero el hash basado en MD5 utiliza 12.) */ if (hash_equals($hashed_password, crypt($user_input, $hashed_password)) { echo "¡Contraseña verificada!"; } ?> |
m.,
buen articulo, corto y claro, la duda es… $hashed_password es el dato que sacas de la BD para compararlo con el password que ingresa el usuario?
Fabián Vera liked this on Facebook.
Sandra Flores liked this on Facebook.
Sandra Flores liked this on Facebook.
Fabián Vera liked this on Facebook.