Provided by: manpages-es_1.55-10_all bug

NOMBRE

       crypt - cifrado de contraseñas y datos

SINOPSIS

       #define _XOPEN_SOURCE
       #include <unistd.h>

       char *crypt(const char *key, const char *salt);

DESCRIPCIÓN

       crypt es la función de cifrado de contraseñas. Está basada en el algoritmo DES (Data Encryption Standard)
       con  algunas  variaciones  tendentes  (junto con otras cosas) a desalentar el uso de implementaciones por
       hardware de buscadores de claves.

       key es una contraseña tecleada por el usuario.

       salt es una cadena de dos caracteres elegidas del conjunto [azAZ09./].  Esta  cadena  se  emplea  para
       variar el algoritmo en uno de 4096 modos diferentes.

       Al  tomar los 7 bit más bajos de cada uno de los primeros ocho carácteres de key, se obtiene una clave de
       56 bits. Esta clave de 56 bits se utiliza para cifrar repetidamente una cadena constante (usualmente  una
       cadena  consistente  en  ceros).  El  valor  devuelto  apunta  a  la  contraseña cifrada, una serie de 13
       caracteres imprimibles (los primeros dos caracteres representan  al  propio  salt).   El  valor  devuelto
       apunta a datos estáticos cuyos contenidos se sobreescriben en cada llamada.

       Cuidado: El espacio de claves consiste en 2**56 igual a 7.2e16 valores posibles. Son posibles exhaustivas
       búsquedas en este espacio de claves empleando computadores masivamente paralelos. Existen programas, como
       crack(1), que pueden buscar en la porción del espacio de claves que es generalmente usado por los humanos
       para  sus contraseñas. De aquí que en la selección de contraseñas se debe, como mínimo, evitar palabras y
       nombres comunes. Se recomienda el uso de un programa passwd(1)  que  compruebe   durante  el  proceso  de
       selección si la contraseña es vulnerable.

       El  algoritmo DES en sí tiene unas peculiaridades que hacen que el empleo de la interfaz crypt(3) sea una
       pobre elección para otro fin más allá de la autenticación de contraseñas. Si está planeando  utilizar  la
       interfaz  crypt(3)  para un proyecto criptográfico, no lo haga: consiga un buen libro sobre cifrado y una
       de las ampliamente disponibles bibliotecas DES.

VALOR DEVUELTO

       Se devuelve un puntero a la contraseña cifrada.  En caso de error se devuelve NULL.

ERRORES

       ENOSYS La función crypt no fue implementada, probablemente por causa de restricciones de  exportación  de
              EE.UU.

EXTENSIÓN DE GNU

       La  versión  glibc2  de  esta  función  tiene las siguientes características adicionales.  Si salt es una
       cadena de carácteres que comienza con los tres carácteres "$1$" seguidos como mucho por ocho  carácteres,
       y  opcionalmente  terminada  en  "$",  en  lugar de usar la máquina DES, la función crypt de glibc usa un
       algoritmo basado en MD5, y produce una salida de hasta 34 bytes, a saber "$1$<cadena>$", donde "<cadena>"
       representa hasta los 8 carácteres que siguen a "$1$" en la "sal", seguidos por  22  bytes  escogidos  del
       conjunto  [azAZ09./].   La  clave  al  completo  tiene significado propio (en lugar de solamente los 8
       primeros bytes).

       Los programas que usen esta función deben ser enlazados con la opción -lcrypt.

CONFORME A

       SVID, X/OPEN, BSD 4.3, POSIX 1003.1-2001

VÉASE TAMBIÉN

       login(1), passwd(1), encrypt(3), getpass(3), passwd(5)

Linux                                           23 diciembre 2001                                       CRYPT(3)