Todos eles têm um sal diferente. Um sal único é escolhido a cada vez, pois os sais nunca devem ser reutilizados. Usar um sal exclusivo para cada senha os torna resistentes a ataques de tabela de arco-íris .
Eu tenho me perguntado por um tempo, por que executar "echo 'helloworld' | openssl passwd -1 -stdin" produz resultados diferentes toda vez? Se eu colocar qualquer um dos hashes em meu / etc / shadow eu posso usar como minha 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/
Eu acho que porque eu uso esse hash para descrever ao sistema qual deveria ser minha senha, eu deveria obter os mesmos resultados todas as vezes. Por que eu não faço?
Todos eles têm um sal diferente. Um sal único é escolhido a cada vez, pois os sais nunca devem ser reutilizados. Usar um sal exclusivo para cada senha os torna resistentes a ataques de tabela de arco-íris .
De fato, se você fornecer o sal para a linha de comando, sempre obterá 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/