Skip to content

Releases: labgeek/HashHarvest

HashHarvest v0.7.0

Choose a tag to compare

@labgeek labgeek released this 23 Jun 22:18

HashHarvest (v0.7.0) is a PyQt5 desktop application for extracting cryptographic hashes from a folder of files. It scans recursively across PDF, text, log, CSV, JSON, XML, Markdown, and Microsoft Office files (Word .docx, Excel .xlsx, PowerPoint .pptx) — detecting MD5, SHA1, SHA256, and SHA512 values using exact hex-length matching with negative look-around so shorter patterns never collide with longer ones. Results are displayed live as the scan runs with the line number and surrounding context for each hit, and can be filtered in real time, right-click copied, exported to CSV or JSON, and automatically persisted to a local SQLite database. A built-in Watchlist lets you import known-bad hash lists and instantly highlights any matches red after each scan. A Scan History dialog lets you filter past scans by date range and reload any previous result set into the main UI for re-inspection or re-export.

HashHarvest v0.6.0

Choose a tag to compare

@labgeek labgeek released this 20 Jun 16:06

Added

  • Full source file path is now shown as a tooltip on hover over the Source File column, so elided paths remain readable (main.py)

Changed

  • Version bumped to v0.6.0 in the GUI version label and window title (main.py), with the window-title test updated to match (test_main.py)
  • Results table columns are all user-resizable (Interactive) with sensible default widths; the last column stretches to fill leftover space (main.py)
  • Results table now elides long text in the middle (ElideMiddle) so the drive root and filename of a path stay visible when a column is narrow (main.py)
  • README documents the new .docx/.xlsx/.pptx parsing (file-types table and scope notes), notes that Office parsing adds no runtime dependencies, adds requirements-dev.txt install instructions, and corrects the SUPPORTED_EXTENSIONS example (README.md)

Cryptographic Hash Extractor v0.5.1

Choose a tag to compare

@labgeek labgeek released this 20 Jun 14:52

Changed

  • Version bumped to v0.5.1 in version label and window title (main.py)
  • SUPPORTED_EXTENSIONS in readers.py is now derived from _DISPATCH keys, eliminating the risk of the two sets drifting out of sync
  • Directory existence check in search() replaced with os.path.isdir() directly, removing a redundant HashExtractor instantiation

Fixed

  • Added closeEvent to pdfAnalysis that stops and waits for any running scan thread before the dialog closes, preventing a crash on close during an active scan
  • SQLite foreign key enforcement enabled via PRAGMA foreign_keys = ON in HashDatabase._connect() — the REFERENCES scans(id) constraint on hash_results was previously decorative only
  • Removed truncated/broken comment block in db.py that was left mid-sentence above the HashDatabase class definition

Cryptographic Hash Extractor v0.5.0

Choose a tag to compare

@labgeek labgeek released this 19 Jun 22:44

Added
persistence/ package (persistence/db.py, persistence/init.py) with HashDatabase class — SQLite-backed store for scan metadata and per-file hash results
ScanHistoryDialog — modal dialog listing past scans with time-range filtering (Today / 7 / 30 / 90 days / All time) and a "Load Selected" action to restore historical results into the main UI
"Scan History" button in the main toolbar that opens ScanHistoryDialog
open_scan_history() and _load_historical_results() methods on pdfAnalysis to launch the dialog and repopulate results from a historical scan record

Cryptographic Hash Extractor v0.4.0

Choose a tag to compare

@labgeek labgeek released this 18 Jun 21:36
172fed9

A PyQt5 desktop application for recursively scanning directories and extracting cryptographic hash values from multiple file types. Results are displayed in a sortable table and can be exported for downstream analysis or audit workflows.

What's New in v0.4.0

Multi-format scanning — extended beyond PDF to support TXT, LOG, MD, CSV, JSON, and XML files in a single scan pass
Selectable hash algorithms — choose any combination of MD5, SHA1, SHA256, and SHA512 before scanning; all four are enabled by default
CSV and JSON export — replaced the flat md5Output.txt output with structured exports; CSV includes Absolute_Path, Hash_Type, and Hash_Value columns
Threaded scan engine — scanning runs in a background thread so the UI stays responsive; a progress bar reflects completion in real time
Scan summary panel — reports files scanned, total hashes found, and skipped files at the end of each run
Built-in README viewer — open documentation without leaving the application
Rebranded UI — renamed to Cryptographic Hash Extractor with a refreshed header

HashExtractor v0.3.0 - SHA1, SHA256, and SHA512 Support

Choose a tag to compare

@labgeek labgeek released this 14 Jun 19:37
a1a6d5d

What's Changed

This release expands HashExtractor beyond MD5-only extraction. The app now detects MD5, SHA1, SHA256, and SHA512 hash values in PDF files and reports the hash type alongside each result.

New Features

  • Added SHA1, SHA256, and SHA512 hash detection.
  • Added a Hash Type column to scan results.
  • Updated CSV output to include Absolute_Path, Hash_Type, and Hash_Value.
  • Improved exact-length hash matching so shorter hashes are not matched inside longer hexadecimal strings.
  • Updated the README with current behavior, build instructions, and app documentation.

Packaging

A standalone Windows executable is available in this release.

MD5Extractor v0.2.0

Choose a tag to compare

@labgeek labgeek released this 11 Jun 22:31

MD5Extractor v0.2.0

  • Added enterprise-style PyQt5 GUI.
  • Added threaded PDF scanning.
  • Added results table.
  • Added scan summary counters.
  • Added README viewer window.
  • Added Clear Form button.
  • Updated README documentation.