Usamos o termo hashing para nos referirmos a uma técnica muito utilizada em programação, quando queremos garantir determinadas propriedades sobre os dados que estamos manipulando e transmitindo. Obter o hash de um conjunto de dados significa obter uma string de tamanho fixo que é calculada com base no conteúdo do conjunto de dados.
Por exemplo, o hash (calculado usando o algoritmo md5) da palavra “teste” é mostrado abaixo:
"teste" --> "1ceae7af21732ab80f454144a414f2fa"
Uma mínima modificação na string “teste” irá gerar um hash totalmente diferente:
"testa" --> "9dd18b1a48164eaec9979df1a6aa84aa"
O hashing é muito utilizado para verificar a integridade de um arquivo durante a transmissão deste pela rede. Ao disponibilizar um arquivo para download, uma empresa pode disponibilizar também o hash calculado sobre o arquivo. Assim, para ter certeza de que efetuou o download do arquivo correto (sem este ter sido corrompido), o usuário pode calcular o hash do arquivo recebido e comparar o hash calculado com o hash disponibilizado pela empresa. Se houverem diferenças entre os hashes, isso significa que o arquivo está corrompido.
hashlib
Python oferece um módulo chamado hashlib que fornece funções para cálculo de hash de dados. Como usá-lo?
import hashlib h = hashlib.md5() h.update("uma frase qualquer") print h.hexdigest()
O código acima utiliza a função md5 para obter o hash da string “uma frase qualquer” e imprimí-lo utilizando o valor do hash obtido em hexadecimal. Além do md5, a hashlib implementa os seguintes algoritmos para cálculo de hash:
- md5
- sha1
- sha224
- sha256
- sha384
- sha512
Assim, para utilizar a função sha256, basta fazer:
import hashlib h = hashlib.sha256() h.update("uma frase qualquer") print h.hexdigest()
Maiores informações podem ser obtidas na documentação oficial: http://docs.python.org/library/hashlib.html
Muito bom este poutes.
Me ajudo muito.
Muito obrigado.
Muito boa a dica ! Obrigado por compartilhar !