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