nexus-techbr / 4-vote

0 stars 0 forks source link

[Q] 1.2 O que é hash MD-5 e como ela pode ser usada no sistema? #8

Open nexus-techbr opened 6 months ago

ThiagoPPSena commented 6 months ago

Primeiro, acho melhor falar rapidamente o que seria uma hash. Hash é o processo de "embaralhar" uma informação ou dado para além do reconhecimento. Esse processo de embaralhar é dado por meio de funções hash e é muito utilizado para criptografar mensagens.

O hash MD5 é um tipo para criptografar mensagens, recebendo um Input (Message) e gerando um Output (Message Digest). O message digest do MD5 tem tamanho fixo de 128 bits expressos em 32 dígitos hexadecimais (Ex.: 97D3B7B38E306F4A3AC787333A02E5DF) - cada dígito corresponde a 4 bits. Não pode ser feita a descriptografia, pois é uma via de mão única (só podemos criptografar). A princípio não deve haver colisões de hash, ou seja, duas mensagens distintas não devem ter a mesma hash associada.

O MD5 é o muito usado para segurança, como por exemplo para downloads na internet. Digamos que um arquivo tenha uma hash associada a ele. Ao fazer o download deste arquivo, a hash gerada para o arquivo baixado tem que ser o mesmo. Outra forma de uso é em banco/base de dados. Ao invés de guardar uma chave de um registro como sua senha por exemplo, guardamos a hash associada. Antes, o MD5 era usado para criptografia de dados, mas agora é usado principalmente para autenticação.

Com base nisso, o hash MD5 vai gerar para gente uma hash única para cada voto de um usuário. O usuário vai ter acesso a essa hash e assim conseguir verificar seu voto. Outra funcionalidade da hash que pode ser feita é na hora do login e autenticação do usuário. Ao invés de salvarmos no Banco de Dados uma senha por exemplo, salvamos a hash referente a senha, como forma de segurança.

Eu dei uma pesquisada e vi que a depender da linguagem que escolhermos, há bibliotecas prontas. Eu consegui achar para JavaScript e Java, mas não olhei afundo o funcionamento. Se precisarmos fazer o nosso próprio método, tem a explicação do Algoritmo de Hash MD5 no vídeo do YouTube e no Artigo. Eu cheguei a ler e ver o vídeo, mas ainda não entendi 100% o algoritmo.

Referências: MD5 Algorithm - YouTube Artigo sobre MD5 O que é e como funciona o algoritmo de hash MD5?