Como os hashes de senha são comparados?

1

Eu estava fazendo um exercício hoje, que inclui a criação de um novo usuário editando manualmente o / etc / group; / etc / shadow; / etc / passwd

Agora, referindo-se ao / etc / shadow, eu tive que criar hashes de senha. Eu usei este script perl:

#!/usr/bin/perl -w

use strict;

my $pwd = $ARGV[0]
chomp($pwd)
my $salt = join "", (".", "/", 0..9, "A".."Z", "a".."z")[rand 64, rand 64];
print crypt($pwd, $salt)."\n";

que obviamente gera resultados aleatórios a cada vez.

Quando eu testei os resultados, descobri que só podia fazer login usando a senha que usei antes para criar o hash aleatório.

Minha pergunta é: se um único script recebe uma única senha e gera hashes diferentes, como o programa de login reconhece a senha real?

    
por W2a 17.08.2016 / 20:38

1 resposta

0

Há sal usado no método da cripta. O mesmo sal sempre produz a mesma senha criptografada. No entanto, o sal é aleatório e, em seguida, parece que toda a senha criptografada é aleatória.

Há sal armazenado na senha criptografada e é usado ao verificar a senha. O hash de senhas funciona apenas de um jeito. Ao verificar o sal é lido a partir da senha criptografada e a senha é criptografada. Se a senha criptografada é a mesma em / etc / shadow, a senha é OK.

Dê uma olhada aqui: link

    
por nobody 17.08.2016 / 21:34