Provided by: manpages-es_1.55-3_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)