Por que as senhas do md5 são divididas em hash de maneira diferente?


22

Estou pensando há algum tempo, por que a execução de "echo 'helloworld' | openssl passwd -1 -stdin" gera resultados diferentes a cada vez? Se eu colocar algum dos hashes no meu / etc / shadow, posso usá-los como meu senha e login no meu sistema, como funciona?

computer:/ user$ echo 'helloworld' | openssl passwd -1 -stdin
$1$xlm86SKN$vzF1zs3vfjC9zRVI15zFl1
computer:/ user$ echo 'helloworld' | openssl passwd -1 -stdin
$1$/0.20NIp$pd4X9xTZ6sF8ExEGqAXb9/
computer:/ user$ echo 'helloworld' | openssl passwd -1 -stdin
$1$sZ65uxPA$pENwlL.5a.RNVZITN/zNJ1
computer:/ user$ echo 'helloworld' | openssl passwd -1 -stdin
$1$zBFQ0d3Z$SibkYmuJvbmm8O8cNeGMx1
computer:/ user$ echo 'helloworld' | openssl passwd -1 -stdin
$1$PfDyDWER$tWaoTYym8zy38P2ElwoBe/

Penso que, como uso esse hash para descrever ao sistema qual deve ser minha senha, sempre obtenho os mesmos resultados. Por que não?


3
Se eles fossem iguais sempre, um invasor poderia apenas usar bilhões de senhas comuns e facilmente verificá-las.
David Schwartz

Respostas:


37

Todos eles têm um sal diferente . Um sal único é escolhido a cada vez, pois os sais nunca devem ser reutilizados. O uso de um sal exclusivo para cada senha os torna resistentes a ataques de tabelas arco - íris .



6
Pode ser uma boa idéia mencionar que a produção inclui o sal após os $ 1 $ (os símbolos do dólar são separadores).
cutuca

6
Então, no hash de '$ 1 $ xlm86SKN $ vzF1zs3vfjC9zRVI15zFl1' xlm86SKN é o sal e vzF1zs3vfjC9zRVI15zFl1 é o hash do mundo salgado?
Peter

2
@ Peter: exatamente.
Joachim Sauer

3

De fato, se você fornecer sal à linha de comando, sempre obtém o mesmo resultado.

$ echo 'helloworld' | openssl passwd -1 -stdin -salt my-salt
$1$my-salt$S/PsLSioHR8ffN8bpIzsk/
$ echo 'helloworld' | openssl passwd -1 -stdin -salt my-salt
$1$my-salt$S/PsLSioHR8ffN8bpIzsk/
$ echo 'helloworld' | openssl passwd -1 -stdin -salt my-salt
$1$my-salt$S/PsLSioHR8ffN8bpIzsk/
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.