CRYPT(3)

NOME
crypt - encriptação de senhas e dados

SINOPSE
#define _XOPEN_SOURCE
#include <unistd.h>

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

DESCRIÇÃO
crypt é a função de encriptação de senhas. É baseada no algoritmo DES, que é implementado de modo a, entre outras coisas, dificultar implementações em hardware de buscas de chaves.

key é a senha digitada pelo usuário.

salt é uma string de dois caracteres do conjunto [a–zA–Z0–9./]. Esta string pode modificar o algoritmo de 4096 modos diferentes.

Uma chave de 56 bits é obtida usando os 7 bits menos significativos de key. Esta chave codifica repetidamente uma string constante (normalmente uma string só de zeros), e o valor resultante aponta para a senha codificada: uma seqüência de 13 caracteres ASCII imprimíveis (sendo os primeiros dois o salt). O valor retornado aponta para dados estáticos cujo conteúdo é sobrescrito a cada chamada da função.

Aviso: a chave tem 2**56 7.2e16 valores possíveis. Podem ser feitas buscas exaustivas com computadores maciçamente paralelos. Programas como o crack(1), testam as senhas mais usadas por pessoas. Estas senhas não devem, portanto, ser nomes ou palavras comuns. recomenda-se usar um programa como passwd(1) que procure senhas fracas durante o processo de seleção.

O próprio algoritmo DES tem características que tornam o uso de crypt(3) uma má escolha para qualquer outra coisa que não senhas. Se você estiver pensando em usá-la para criptografia, não o faça, mas procure um bom livro sobre criptografia e uma das bibliotecas DES (são fáceis de encontrar).

DE ACORDO COM
SVID, X/OPEN, BSD 4.3

VER TAMBÉM
login(1), passwd(1), encrypt(3), getpass(3), passwd(5)

TRADUZIDO POR LDP-BR em 21/08/2000.
Paulo César Mendes <drpc@ism.com.br> (tradução) xxxxxxxxxxxxxxxxxxxxxxxxx <xxx@xxxxxx.xxx.xx> (revisão)