Re: [Cascavel-pm] diferenças entre crypt e Digest::MD5

Alceu R. de Freitas Jr. glasswalk3r em yahoo.com.br
Quarta Julho 20 11:27:09 PDT 2005


Olá Breno,

--- "Breno G. de Oliveira" <breno em clavis.com.br>
escreveu:

> Justamente pq a crypt() do perl eh a implementacao
> do sistema, ela serah
> sempre adequada ao sistema em que o script estah
> executando.
> Provavelmente o erro ocorreu pq vc tentou utilizar a
> string de hash q
> estava no meu codigo e nao um hash da sua maquina (q
> como vc disse
> utiliza um metodo diferente).

Eu fiz o teste, e realmente funciona. Mas com alguns
poréms (explico mais abaixo).

> Esse script DEVE funcionar perfeitamente em qq
> sistema *NIX (inclusive o
> seu Conectiva ;), contanto q o seu usuario tenha
> permissao para ler o
> /etc/shadow (execute-o como root para nao haver
> possibilidade de erro).

Eu fiz um script como root e executei com ele mesmo
para não me preocupar com permissões (crianças, não
façam isso em casa!).

Eu usei o módulo Passwd::Linux para pegar apenas a
senha de um usuário que eu criei com a senha 'teste'.
Então eu mandei imprimir somente a essa senha na tela.

Depois tentei gerar a mesma senha, arrancando apenas a
parte referente ao salt (vindo do /etc/shadow) usando
crypt() e funcionou! O crypt realmente funciona, mas
precisa ter um salt no formato:

$1$ . $salt

aonde $salt é uma string gerada dinamicamente usando
\w (pensem em regex).

Eu também fiz o mesmo teste usando o módulo
Crypt::PasswdMD5 e também funciona (desde que usando o
mesmo salt e senha). Não testei exaustivamente (nem
usei Benchmark) mas aparentemente usar esse módulo é
mais lento do que gerar via crypt(). Imagino que a
única vantagem de usar ele seja em sistemas que a
biblioteca não usa MD5 por padrão, ou para gerar
senhas MD5 no formato usado pelo Apache.

Resumindo a história toda, o segredo todo está no
salt. ;-)

[]'s


Alceu Rodrigues de Freitas Junior
--------------------------------------
glasswalk3r em yahoo.com.br
http://www.imortais.cjb.net
-----------------------------------------------------------------------
A well-used door needs no oil on its hinges.
A swift-flowing stream does not grow stagnant.
Neither sound nor thoughts can travel through a vacuum.
Software rots if not used.
These are great mysteries -- The Tao Of Programming, 5.1


	
	
		
_______________________________________________________ 
Yahoo! Acesso Grátis - Internet rápida e grátis. 
Instale o discador agora! http://br.acesso.yahoo.com/


Mais detalhes sobre a lista de discussão Cascavel-pm