|
crypt() encriptará una cadena utilizando el método estándar de encriptación del Unix: DES. Los argumentos son una cadena a encriptar y una cadena semilla de 2 caracteres en la que basar la encriptación. Vea la página del manual de Unix sobre crypt para más información.
Si el argumento de semilla no se proporciona, será generado aleatoriamente por PHP cada vez que se llama a la función.
Algunos sistemas operativos soportan más de un tipo de encriptación. De hecho, algunas veces la encriptación estándar DES es sustituída por un algoritmo de encriptación basado en MD5. El tipo de encriptación se selecciona en base al argumento semilla. En tiempo de instalación, PHP determina la capacidad de la función de encriptación y aceptará semillas para otros tipos de encriptación. Si no se proporciona la semilla, PHP intentará generar una semilla estándar DES de 2 caraceres por defecto, excepto si el tipo de encriptación estándar del sistema es el MD5, en cuyo caso se generará una semilla aleatoria compatible con MD5. PHP fija una constante llamada CRYPT_SALT_LENGTH que le especifica si su sistema soporta una semilla de 2 caracteres o si se debe usar la semilla de 12 caracteres de longitud.
Si se utiliza la semilla proporcionada, debe tenerse en cuenta que la semilla se genera una sola vez. Por tanto, si se llama a esta función repetidamente, puede que se produzca un potencial problema de seguridad.
La función estándar de encriptación crypt() devuelve la semilla como los dos primeros caracteres de la salida generada. Además, solamente emplea los 8 primeros caracteres del parámetro cadena, por lo que si se utilizan 2 cadenas largas cuyos 8 primeros caracteres son identicos, la salida generada será la misma (siempre que se emplee la misma semilla).
En los sistemas en los que la función crypt() soporta múltiples tipos de encriptación, las siguienes constantes son fijadas a 0 ó 1 dependiendo de si está disponible el tipo dado:
CRYPT_STD_DES - Encriptación DES estándar con semilla de 2 caracteres
CRYPT_EXT_DES - Encriptación DES extendida con semilla de 9 caracteres
CRYPT_MD5 - Encriptación MD5 con semilla de 12 caracteres y comenzando por $1$
CRYPT_BLOWFISH - Encriptación DES extendida con semilla de 16 caracteres y comenzando por $2$ o $2a$
Nota: No existe una función de desencriptado, ya que crypt() utiliza algoritmos no reversibles.
Ejemplo 3. Empleando crypt() con diferentes métodos de encriptación
El resultado del ejemplo seria algo similar a:
|
Vea también: md5() y la extensión Mcrypt.
Hosting by: hurra.com
Generated: 2007-01-26 18:00:56