
Ferramenta forense de CLI que identifica mais de 90 algoritmos de hash (MD5, bcrypt, SHA256) a partir de valores individuais, arquivos ou varreduras recursivas de diretórios, com exportação em JSON, YAML e texto.
Nota: este é um projeto de estudante
Certamente uma string aleatória como 'b318c90ba09d05dfc9ff3991974eee68' pode parecer assustadora. Não tenha mais medo, o HashPrint está aqui para ajudar.
O HashPrint é uma ferramenta forense de CLI que consegue identificar qual algoritmo (como MD5, bcrypt, SHA256) produziu a string assustadora, chamada de hash, como a do exemplo acima.
Requer Python 3.14+
Se instalar com pip, então deve ter o Python 3.14 ou superior instalado no seu sistema
$ pip install pyhashprint
OU com uv
O uv instala a versão correta do Python, se necessário
Primeiro, crie um ambiente virtual:
$ uv venv
Depois instale:
$ uv pip install pyhashprint
Usar sem instalar
Requer uv
$ uv tool run pyhashprint
OU
$ uvx pyhashprint
| Opção | Finalidade |
|---|---|
| -h, --help | mostra a mensagem de ajuda e termina. |
| -f, --hash-file | esta opção recebe como argumento um caminho para um ficheiro de texto. Com esta opção, o HashPrint lê o ficheiro no caminho especificado à procura de hashes. O ficheiro deve conter um hash por linha. |
| -c, --hash | esta opção recebe um hash como argumento e identifica-o. Deve estar entre aspas simples e sem o prefixo 0x. |
| -x, --format | esta opção permite escolher entre os formatos de exportação. Pode exportar os resultados nos formatos JSON, YAML e texto. Esta opção não funciona sem a opção -p, --path. |
| -p, --path | esta opção especifica o caminho do ficheiro de exportação. Se for especificado o caminho para um ficheiro já existente, este será sobrescrito caso já contenha conteúdo. Se o ficheiro no caminho especificado não existir, o HashPrint irá criá-lo. |
| -w, --walk | esta opção analisa recursivamente um diretório no caminho especificado à procura de ficheiros de texto, contendo um hash por linha. |
| -v, --version | esta opção apresenta o número de versão do HashPrint. |
Para obter ajuda
$ hashprint --help
Apresentar o número de versão
$ hashprint --version
Identificar um único hash
$ hashprint -c 'a9993e364706816aba3e25717850c26c9cd0d89d'
OU
$ hashprint --hash 'a9993e364706816aba3e25717850c26c9cd0d89d'
Identificar múltiplos hashes
$ hashprint -c '0cc175b9c0f1b6a831c399e269772661' -c 'e8b7be43'
Identificar hashes a partir de um ficheiro + exportar resultados para um ficheiro
$ hashprint -f path/to/txt/file/containing/hashes -x text -p path/of/export/file
O comando acima exporta os resultados num formato de texto legível por humanos para um ficheiro à sua escolha. O HashPrint irá criar o ficheiro caso este não exista.
Scanner Recursivo de Diretórios + exportação de resultados para um ficheiro
$ hashprint -w path/to/directory -x format -p path/of/export/file
Este projeto está licenciado sob a licença MIT.
Encontrou um bug ou tem uma ideia para uma nova funcionalidade?
-Para bugs: Abra uma Issue.
-Sugira uma funcionalidade ou uma melhoria: Abra uma Issue.
-Para novas ideias ou perguntas: Sinta-se à vontade para iniciar um tópico em Discussions!