Saltar al contenido

crypt()

La función crypt() se utiliza para generar un hash unidireccional de una cadena. La sintaxis de la función crypt() es la siguiente:

La sintaxis de PHP de crypt()

php
string crypt ( string $str [, string $salt ] )

La función acepta dos parámetros: la cadena que se va a hashear ($str) y un parámetro opcional de sal ($salt). El parámetro de sal determina el algoritmo de hash y las opciones. En PHP moderno, la sal debe seguir un formato específico (por ejemplo, $2y$, $6$) para seleccionar el algoritmo, en lugar de usar una cadena de texto simple.

A continuación se muestra un ejemplo de cómo usar la función crypt():

Ejemplo de PHP crypt()

php
<?php
$str = "password123";
$salt = "abcd";
$encrypted_str = crypt($str, $salt);
echo $encrypted_str;
?>

En este ejemplo, tenemos una cadena que queremos hashear utilizando la función crypt(). Pasamos la cadena y un valor de sal a la función crypt(), la cual devuelve la cadena hasheada.

La salida de este código variará dependiendo de la sal y el algoritmo utilizados:


console
abIZtMrubNtSE

Como puede ver, la función crypt() ha devuelto la cadena hasheada.

A continuación se muestra otro ejemplo de cómo usar la función crypt() para verificar una contraseña:

¿Cómo usar PHP crypt()?

php
<?php
$password = "password123";
$hashed_password = crypt($password, "abcd");
if (crypt($password, $hashed_password) == $hashed_password) {
    echo "Password is valid!";
} else {
    echo "Invalid password.";
}
?>

En este ejemplo, verificamos una contraseña volviéndola a hashear con el hash generado anteriormente. Tenga en cuenta que crypt() extrae automáticamente la sal del hash almacenado cuando el segundo argumento es una cadena de hash válida, lo que garantiza que se utilice el mismo algoritmo y parámetros para la comparación. Si los dos resultados coinciden, la contraseña es válida.

La función crypt() es una herramienta heredada para el hash unidireccional de datos sensibles, como contraseñas. Para aplicaciones PHP modernas, se recomienda encarecidamente usar password_hash() y password_verify() en su lugar, ya que gestionan automáticamente la generación segura de sales y la selección de algoritmos. El uso de sales cortas o simples con crypt() en PHP moderno puede resultar en un hash débil.

Esperamos que este artículo haya sido útil para comprender la función crypt() en PHP. Si tiene alguna pregunta o comentario, no dude en contactarnos.

Práctica

¿Cuál es el uso principal de la función crypt() en PHP?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.