English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste artigo, você aprenderá a encontrar o valor de hash de um arquivo e mostrá-lo.
Para entender este exemplo, você deve saber o seguinteProgramação PythonTema:
A função de hashing obtém uma quantidade arbitrária de dados e retorna uma string de bits de comprimento fixo. A saída da função é chamada de mensagem resumo.
Eles são amplamente usados em criptografia para autenticação. Existem muitos algoritmos de hash, como MD5,SHA-1etc. Consulte esta página para obter informações sobrefunções de hash em criptografia.Mais informações.
Neste exemplo, mostraremos como realizar o hash de um arquivo. Usaremos SHA-1algoritmos de hash. SHA-1O comprimento do resumo é16bits.
Nós não fornecemos todos os dados do arquivo de uma vez, porque alguns arquivos são muito grandes e não podem ser colocados em memória toda de uma vez. Dividir o arquivo em pedaços melhorará a eficiência da memória do processo.
# Python programa para encontrar o SHA do arquivo1resumo de mensagem # Importar módulo hashlib import hashlib def hash_file(filename): """ Esta função retorna SHA-1Hash passando para ele o arquivo """ # Criar um objeto de hash h = hashlib.sha1() # Abrir arquivo no modo binário para leitura with open(filename, 'rb') as file: # Loop até o final do arquivo chunk = 0 while chunk != b'' # Ler uma vez apenas1024bytes chunk = file.read(1024) h.update(chunk) # Retornar a representação hexadecimal do resumo return h.hexdigest() message = hash_file("track"1.mp3") print(message)
Resultados de saída
633d7356947eec543c50b76a1852f92427f4dca9
Neste programa, abrimos o arquivo no modo binário. As funções de hash estão disponíveis no módulo hashlib. Usamos um loop while até o final do arquivo. Ao chegarmos ao final, obtemos um objeto de bytes vazio.
Em cada iteração, lemos apenas1024bytes (este valor pode ser alterado conforme necessário) e atualizamos a função de hash.
Por fim, usamos o método hexdigest() para retornar a mensagem resumida na forma hexadecimal.