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)