
HashCheck es un proyecto que tiene como objetivo apoyar la búsqueda de contraseñas filtradas manteniendo un alto nivel de protección de datos utilizando el método k-anonimato.
Para conseguirlo se utilizan las API de varios servicios que envían solo parte del hash de la contraseña que queremos comprobar, por ejemplo los 5 primeros caracteres.
requisitos
El proyecto necesita algunas bibliotecas para funcionar, para instalarlo use el siguiente comando:
pip install -r requisitos
Recuerde, se requiere Python 3.
usar
passme.py [FUNC] [ELEMENT] -Motor [ENGINE] Clave API [API_KEY]
FUNC: el tipo de elemento que desea verificar puede ser -h / –hash o -p / –password
o -f / –archivo o -l / –list o –help.
ELEMENTO: El «hash», la «contraseña» o el nombre del archivo que contiene una lista de
Hashes o contraseñas separadas por una nueva línea.
MOTOR: El motor de fugas que desea utilizar utiliza HIBP (tengo PWN) de forma predeterminada.
API_KEY: API_KEY que se requiere para algunas funciones de algunos motores.
Funciones
PASSME_HASH
La función principal del proyecto recibe la contraseña hash, el motor que se utilizará y la clave API.
Dependiendo del motor recibido, tanto la clave API como la contraseña hash se envían a una u otra función.
Si desea agregar su propio motor o aún no implementado, simplemente agregue otra opción aquí.
passme_hash (hashed_password, motor = «HIBP», api_key = «0»)
PASSME_PASSWORD
Esta función procesa la contraseña recibida con SHA-1 y envía el hash a la función passme_hash ().
passme_password (contraseña, motor = «HIBP», api_key = «0»)
PASSME_FILE
Esta función lee las líneas del archivo recibido una a una para comprobar cada contraseña y da información sobre la contraseña recibida y si ha sido filtrada o no.
passme_file (nombre de archivo, motor = «HIBP», api_key = «0»)
PASSME_LIST
Esta función lee las líneas del archivo recibido una por una para verificar cada hash y brinda información sobre el hash recibido y si fue filtrado o no.
passme_list (nombre de archivo, motor = «HIBP», api_key = «0»)
PASSME_LIST
La función que se ocupa de la API HIBP (Have i been pwned) envía los primeros cinco caracteres del hash y luego los compara con el hash completo para ver si la contraseña / hash se ha filtrado.
engine_HIBP (hashed_password, motor, api_key)
examen
Este proyecto cuenta con una serie de pruebas para comprobar el correcto funcionamiento de todas sus funciones, para ello se utilizó la librería “pytest”. Para ejecutar las pruebas, instale pytest con el siguiente comando:
pip instalar pytest
Después de la instalación, simplemente ejecute el comando pytest para que las pruebas se ejecuten automáticamente. Los errores que se produzcan son devueltos por el terminal.
Los resultados de la prueba en el laboratorio son los siguientes:
| Versión de Python | Función hash | Lista de funciones | Contraseña de función | Hash aleatorio | Contraseña aleatoria | comentario |
|---|---|---|---|---|---|---|
| 3.9 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3.8 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3,7 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3.6 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3,5 | ✅ | ✅ | ✅ | ❌ | ❌ | Random.choice no está disponible en Python 3.5 // Versión de Python desactualizada |









