Como o openssl descriptografa uma senha?

1

Estou aprendendo sobre criptografia e descriptografia em linux e php. Então eu tenho três perguntas sobre o openssl e como ele gera hashes de senha.

1- Então diga que eu criei uma senha com o comando linux

openssl passwd

Minha primeira observação é que toda vez que eu gero um hash, é diferente! Porque é naquela? É por causa do sal? Essa é a minha primeira pergunta.

2- Agora, minha segunda pergunta é sobre como testar essa senha. Digamos que eu queira testar a exatidão dessa senha e obter uma resposta binária, esteja correta ou não. Como faço isso com o openssl? Se a minha pergunta não faz sentido, então como é que openssl passwd é útil?

3- Se eu criptografar minha senha com um hash usando openssl passwd , e toda vez que um sal aleatório for adicionado, como o openssl pode decriptá-lo (ou qualquer outro programa para esse assunto)?

Obrigado.

    
por The Quantum Physicist 13.12.2014 / 17:20

2 respostas

1

openssl criptografa sua senha com um algoritmo e um sal. Se você não fornecer um sal, é escolhido um aleatório.

o sal é dado no hash resultante.

por exemplo

 openssl passwd -1 foo
 $1$pyuddMjp$3.deTnHdrVVVLoh5zkQ0B.

onde

  • 1 é proticol (md5 aqui)
  • pyuddMjp é sal

Se eu quiser verif você sabe passwd (ou seja, foo), eu preciso comparar o hash resultante, usando a opção passwd com sal.

  • com x = bar

    openssl passwd -1 -salt pyuddMjp $ x  $ 1 $ pyuddMjp $ kNkQHWoF8WVh7Oxvae5YX1

  • com x = foo

    openssl passwd -1 -salt pyuddMjp $ x $ 1 $ pyuddMjp $ 3.deTnHdrVVVLoh5zkQ0B.

por 13.12.2014 / 18:15
0

Primeiro, o comando openssl geralmente não é usado para criptografar senhas. Você pode ler sobre o openssl no link

Em sistemas Unix, as senhas são criptografadas com um hash unidirecional, portanto, não é possível descriptografá-las para recuperar o original.

De uma forma, criptografia, o sal geralmente é uma string pré-determinada ou gerada a partir da versão em texto puro, por exemplo, os primeiros caracteres, e você usará isso para regenerar o hash e comparar os dois.

Você mencionou php, você pode verificar a função php crypt para mais informações.

    
por 13.12.2014 / 17:48