Hash Checker - Calcule o Hash dos seus Arquivos para verficação de integridade.
Publicado por João Pedro (última atualização em 05/09/2022)
[ Hits: 3.024 ]
Um simples programa que calcula o hash dos arquivos para a verificação de integridade. Feito 100% em Python, sendo possível utilizar em qualquer plataforma.
Home page: https://github.com/MarchPy/SHA-and-MD5-checker
from pandas.io import clipboard from tkinter import PhotoImage, Tk, ttk, END, IntVar, filedialog, messagebox import hashlib NAME = "HASH CHECKER" VERSION = 2.0 class GetHash: def __init__(self): self.path = filedialog.askopenfilename() def get_hash256(self): if self.path != '': with open(self.path, 'rb') as file: byte = file.read() return hashlib.sha256(byte).hexdigest() def get_hash512(self): if self.path != '': with open(self.path, 'rb') as file: byte = file.read() return hashlib.sha512(byte).hexdigest() def get_hash_md5(self): if self.path != '': with open(self.path, 'rb') as file: byte = file.read() return hashlib.md5(byte).hexdigest() class HashChecker(Tk, GetHash): def __init__(self): super(HashChecker, self).__init__() self.title(f"{NAME} [{VERSION}]") self.resizable(False, False) ph = PhotoImage(file="images/icone.png") self.iconphoto(False, ph) def main_window(self): def core(): list_opts = [var_1.get(), var_2.get(), var_3.get()] if list_opts == [0, 0, 0]: messagebox.showwarning("Atenção", "Selecione uma opção.") else: GetHash.__init__(self) path_output.delete(0, END) path_output.insert(0, self.path) if 1 in list_opts: hash_result = self.get_hash256() if hash_result is not None: output_sha256.delete(0, END) output_sha256.insert(0, hash_result) if 2 in list_opts: hash_result = self.get_hash512() if hash_result is not None: output_sha512.delete(0, END) output_sha512.insert(0, hash_result) if 3 in list_opts: hash_result = self.get_hash_md5() if hash_result is not None: output_md5.delete(0, END) output_md5.insert(0, hash_result) def copy_sha256(): clipboard.copy(output_sha256.get()) def copy_sha512(): clipboard.copy(output_sha512.get()) def copy_md5(): clipboard.copy(output_md5.get()) frame = ttk.Frame(self) frame.grid(row=0, column=0) lbf_select = ttk.LabelFrame(frame, text="Selecione o arquivo") lbf_select.grid(row=0, column=0, padx=5, pady=5, sticky='N') label_select = ttk.Label(lbf_select, text="Arquivo selecionado: ") label_select.grid(row=0, column=0) path_output = ttk.Entry(lbf_select, width=55) path_output.grid(row=0, column=1, padx=5, pady=5) btt_get_hash = ttk.Button(lbf_select, text="Selecionar e verificar", command=core) btt_get_hash.grid(row=0, column=2) lbf_result = ttk.LabelFrame(frame, text="Resultado") lbf_result.grid(row=1, column=0, padx=5, pady=5, sticky='W') var_1 = IntVar() rd_btt_1 = ttk.Checkbutton(lbf_result, text="SHA 256", variable=var_1, onvalue=1, offvalue=0) rd_btt_1.grid(row=0, column=0, sticky="W", padx=5) output_sha256 = ttk.Entry(lbf_result, width=70) output_sha256.grid(row=0, column=2) btt_copy_sha256 = ttk.Button(lbf_result, text="Copiar", command=copy_sha256) btt_copy_sha256.grid(row=0, column=3, padx=5) var_2 = IntVar() rd_btt_2 = ttk.Checkbutton(lbf_result, text="SHA 512", variable=var_2, onvalue=2, offvalue=0) rd_btt_2.grid(row=1, column=0, sticky="W", padx=5) output_sha512 = ttk.Entry(lbf_result, width=70) output_sha512.grid(row=1, column=2) btt_copy_sha512 = ttk.Button(lbf_result, text="Copiar", command=copy_sha512) btt_copy_sha512.grid(row=1, column=3, padx=5) var_3 = IntVar() rd_btt_3 = ttk.Checkbutton(lbf_result, text="MD5", variable=var_3, onvalue=3, offvalue=0) rd_btt_3.grid(row=2, column=0, sticky="W", padx=5) output_md5 = ttk.Entry(lbf_result, width=70) output_md5.grid(row=2, column=2) btt_copy_md5 = ttk.Button(lbf_result, text="Copiar", command=copy_md5) btt_copy_md5.grid(row=2, column=3, padx=5) if __name__ == "__main__": app = HashChecker() app.main_window() app.mainloop()
Função para decriptar Base64 em string compactada
Cracker De Senha (cupp.py) 1.0
Brute force, algo à aprimorar?
Como mudar o IP aleatoriamente em Python
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Dar boot no windows usando qemu direto no disco (18)
Wifi não funciona no Aspire ES 15 com o Debian (15)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta