Metadata-Version: 2.4
Name: Hashdog
Version: 0.0.2
Summary: Pure python alternative to hashcat (password hashing and recovery tool)
Project-URL: Homepage, https://gitlab.cylab.be/cylab/hashdog
Project-URL: Bug Tracker, https://gitlab.cylab.be/cylab/hashdog/-/issues
Author-email: Thibault Debatty <t.debatty@cylab.be>
License-File: LICENSE
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.7
Description-Content-Type: text/markdown

# hashdog

[![GitLab pipeline](https://gitlab.cylab.be/cylab/hashdog/badges/main/pipeline.svg)](https://gitlab.cylab.be/cylab/hashdog/-/pipelines)
[![PyPI version](https://img.shields.io/pypi/v/hashdog?label=pypi%20package&color=brightgreen)](https://pypi.org/project/hashdog/)
[![PyPI downloads](https://img.shields.io/pypi/dm/hashdog?label=pypi%20downloads)](https://pypistats.org/packages/hashdog)
[![License](https://img.shields.io/pypi/l/hashdog?label=license)](https://github.com/cylab/hashdog/blob/main/LICENSE)

`hashdog` is a lightweight, pure‑Python implementation of a hash‑cat clone.
It reads a wordlist, hashes each entry using the specified algorithm,
and stops as soon as a match with the target hash is found.

---

## Installation

`hashdog` can be installed globally with **pipx**, ensuring it never
interferes with your other Python projects.

```bash
# Install pipx if you don't have it yet
python3 -m pip install --user pipx
python3 -m pipx ensurepath

# Install hashdog
pipx install hashdog
```

A normal `pip` install works as well:

```bash
python3 -m venv .venv
source .venv/bin/activate
pip install hashdog
```

---

## Usage

```bash
hashdog <TARGET_HASH> <DICTIONARY_FILE> [-m ALGORITHM]
```

* **`TARGET_HASH`** – The hash value you want to crack (hexadecimal string).
* **`DICTIONARY_FILE`** – Path to the wordlist; one candidate password per line.
* **`-m ALGORITHM`** – Optional. Hash algorithm to use.  
  Defaults to `md5`. Supported values: `md5`, `sha1`.

### Example

```bash
# Crack an MD5 hash with a local wordlist
hashdog d41d8cd98f00b204e9800998ecf8427e ./rockyou.txt
```

![hashdog](./hashdog.png)

---

## Supported Algorithms

| Algorithm | Import path | Notes |
|-----------|-------------|-------|
| `md5`     | `hashlib.md5` | Fast, built‑in |
| `sha1`    | `hashlib.sha1` | Commonly used in legacy systems |

Future extensions may add more algorithms; just modify the `hash_password` helper.

---

## License

MIT © cylab

See the [LICENSE](LICENSE) file for details.
