HashHarvest v0.8.0 #10
labgeek
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
[07-18-2026 17:01:08]
Added
hash_files()inextractor.pycomputes each file's own MD5/SHA1/SHA256/SHA512 digest, walking all files under the folder (not just supported document types) and returning the same result shape asextract()(line_no=None,"file digest"context). Exposed in the GUI as a Find hashes in text / Hash the files radio, wired throughScanWorkervia a newmodeparameter (extractor.py,main.py)vt_lookup.py(lookup_hashes,verdict_from_stats) queries VirusTotal viavt-py; newVirusTotalDialogandVTLookupWorkerplus a "VirusTotal" toolbar button check the current scan's unique hashes in a worker thread, showing per-hash malicious / suspicious / clean / not-found / error verdicts with detection counts, color-coded. SHA512 hashes are labeledn/aand skipped without an API call, since VirusTotal indexes only MD5/SHA1/SHA256 (vt_lookup.py,main.py)keystore.pyresolves the VirusTotal key from theVT_API_KEYenvironment variable, then the OS keychain (keyring), thenQSettings;save_key()writes to the OS keychain (encrypted at rest) orQSettings(plaintext) and removes the copy from the other backend. A "Store key in OS keychain (encrypted at rest)" checkbox opts in whenkeyringis available (keystore.py,main.py).envsupport —_load_dotenv()loadsVT_API_KEY(and otherKEY=VALUElines) from a.envfile next to the app at startup, so the key can live in a git-ignored file instead of the GUI; environment variables take precedence (main.py)MM/DD/YYYY HH:MM:SS(main.py)HashHarvest.specPyInstaller build file with UPX compression, Qt/stdlib exclusions, andvt/keyring.backends.Windowsdeclared as hidden imports so packaged builds include the optional features (HashHarvest.spec)Changed
main.py)requirements.txt— addedvt-py, plus optionalkeyringfor encrypted key storageREADME.mdandUSAGE.md— documented the two scan modes, VirusTotal lookup, API-key configuration (env var /.env/ GUI field) and plaintext-vs-encrypted storage, and rewrote the build section for the spec + UPX workflow with shipping guidance (ship only the.exe; the empty database is created on first run)This discussion was created from the release HashHarvest v0.8.0.
All reactions