SHA1 ou MD5?

Segurança

04/05/2017

Alguém sabem me dizer qual é a diferença entre os algorítimos SHA1 e MD5? E em qual situação um ou outro seria mais adequado?
André Gomes

André Gomes

Curtidas 0

Melhor post

Gabriel Rocha

Gabriel Rocha

04/05/2017

O md5 gera uma string alfa-numérica de 32 caracteres, não importa se você tá gerando o md5 de duas letras ou de um texto de 20 parágrafos… O md5 gerado sempre vai ter 32 caracteres.

Você pode usar o md5 na hora de salvar um dado sigiloso (senhas) o banco… Com isso, ninguém tem acesso à senha original do cliente. Depois é só comparar o md5 do que foi digitado no campo senha (na hora do login) com o que está armazenado no banco, se bater, tá tudo certo.

SHA1

A outra hash de mão única é o sha1. Ele é praticamente identico ao md5, só que tem 160 bits, o que acaba criando uma string-resultado maior: 40 caracteres alfa-numéricos. Outro ponto do sha1 é que, por ser 160 bits e gerar uma cadeia de caracteres maior, uma colisão (encontrar duas strings que, codificadas, sejam a mesma coisa) é bem mais rara que numa chave de 128bits.
GOSTEI 6

Mais Respostas

André Gomes

André Gomes

04/05/2017

Muito obrigado Gabriel,

Esclareceu uma dúvida que eu já tinha a algum tempo.
Com isso, eu poderia afirmar então que o SHA1 seria uma melhor opção por ser mais seguro?

Um abraço.
GOSTEI 1
Diego Silva

Diego Silva

04/05/2017

Opa pessoal, beleza? Entre essas duas opções eu usaria o sha1 conforme a explicação do Gabrielscr.

Porém acredito que existem recursos melhores hoje em dia, como o Bcrypt por exemplo.

Aconselharia a dar uma olhada nele, pois acredito que vale a pena.

Abraços :)
GOSTEI 1
Fabio Rocha

Fabio Rocha

04/05/2017

André,

De uma olhada também na documentação do PHP na função password_hash.

Nela você pode optar por tipos diferentes apenas mudando uma constante.

Grande abraço.
GOSTEI 1
POSTAR