HAITI (HAsh IdenTIfIer) is a Ruby library and CLI tool for identifying hash types from input strings. It matches against a comprehensive database of over 675 hash types (including modern algorithms like SHA3, Blake2, and VeraCrypt) using regex patterns. The library provides concise output with hashcat mode numbers, John the Ripper format names, and example hashes. Multiple CLI entry points exist: the main `haiti` command, `haiti-parsable` for script-friendly output, `haiti-fzf` for interactive selection, and `hashcat-haiti`/`john-haiti` for converting hashes into hashcat/JtR formats. The codebase is well-structured, with clean separation between the identification engine, data definitions, and CLI wrappers. It includes comprehensive documentation (man pages, YARD API docs, a docsify site) and is packaged for numerous Linux distributions and Homebrew. The identification logic is straightforward but effective: iterate over a JSON array of prototypes, apply each regex to the input, and return matching types. The data file (`prototypes.json`) is manually maintained and extended with each release.
This repository contains a proof-of-concept CLI tool for recovering text from pixelated screenshots, specifically targeting password recovery. The core algorithm identifies same-color rectangles in the pixelated image, computes their average color (with optional gamma correction), and matches them against a search image containing a De Bruijn sequence of expected characters. Geometric relationships between matched blocks are used to resolve ambiguous matches. The tool is implemented as a single Python script (depix.py) with a supporting library (depixlib) for image loading, rectangle detection, and matching logic. Additional utility scripts generate pixelated images and visualize detected boxes. The code is functional but lacks tests, dependency pinning, and modern packaging; it is a proof-of-concept rather than a production-ready application. The README indicates the project has migrated to Codeberg, suggesting the GitHub repository is no longer actively maintained.