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

NOMBRE

       crypt - cifrado de contrasenas y datos

SINOPSIS

       #define _XOPEN_SOURCE
       #include <unistd.h>

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

DESCRIPCI'ON

       crypt  es  la  funcion  de  cifrado  de  contrasenas. Esta 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 contrasena tecleada por el usuario.

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

       Al tomar los 7  bit  mas  bajos  de  cada  uno  de  los  primeros  ocho
       caracteres  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 contrasena cifrada, una serie de 13  caracteres  imprimibles  (los
       primeros dos caracteres representan al propio salt).  El valor devuelto
       apunta a datos estaticos 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 busquedas en este espacio de  claves
       empleando  computadores  masivamente paralelos. Existen programas, como
       crack(1), que pueden buscar en la porcion del espacio de claves que  es
       generalmente usado por los humanos para sus contrasenas. De aqui que en
       la seleccion de contrasenas se debe, como  minimo,  evitar  palabras  y
       nombres  comunes.  Se  recomienda  el  uso de un programa passwd(1) que
       compruebe   durante  el  proceso  de  seleccion  si  la  contrasena  es
       vulnerable.

       El  algoritmo  DES  en  si  tiene  unas peculiaridades que hacen que el
       empleo de la interfaz crypt(3) sea una pobre eleccion para otro fin mas
       alla  de la autenticacion de contrasenas. Si esta planeando utilizar la
       interfaz crypt(3) para un proyecto criptografico, 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 contrasena cifrada.  En caso  de  error  se
       devuelve NULL.

ERRORES

       ENOSYS La funcion crypt no fue implementada, probablemente por causa de
              restricciones de exportacion de EE.UU.

EXTENSI'ON DE GNU

       La version glibc2 de esta funcion tiene las siguientes  caracteristicas
       adicionales.   Si salt es una cadena de caracteres que comienza con los
       tres caracteres "$1$"  seguidos  como  mucho  por  ocho  caracteres,  y
       opcionalmente  terminada  en  "$",  en lugar de usar la maquina DES, la
       funcion 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 caracteres que  siguen  a  "$1$"  en  la  "sal",
       seguidos  por  22 bytes escogidos del conjunto [a-zA-Z0-9./].  La clave
       al completo tiene significado propio  (en  lugar  de  solamente  los  8
       primeros bytes).

       Los  programas  que usen esta funcion deben ser enlazados con la opcion
       -lcrypt.

CONFORME A

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

V'EASE TAMBI'EN

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