CRYPT(3)

NOME
crypt - encriptação de senhas e dados

SINÓPSE
#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 seqüencia de dois caracteres do conjunto [a–zA–Z0–9./]. Esta seqüencia pode modificar o algoritmo de 4096 modos diferentes.

Uma chave de 56 bits é obtida usando os 7 bits menos significativos de key. Esta chave de 56 bits codifica repetidamente uma seqüencia constante (normalmente uma seqüencia 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 usar crypt(3) 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).

VALORES RETORNADO
Um ponteiro para a senha criptografada. Em caso de erro, NULO.

ERROS

ENOSYS
    A função crypt não é implementada, provavelmente por causa da restrições de exportação dos EUA.

DE ACORDO COM
SVID, X/OPEN, BSD 4.3.

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

TRADUZIDO POR LDP-BR em 21/08/2000.

  Tradução:
Paulo César Mendes <drpc@ism.com.br>

  Revisão.:
André Luiz Fassone <lonely_wolf@ig.com.br>