{"adoption": {"forks": 194, "observed_at": "2026-08-28T04:04:00.131022+00:00", "stars": 1211}, "canonical_url": "https://ross.abutalabs.com/products/hash_extender", "card": {"archived": false, "artifact_type": "cli-tool", "description": null, "domain": ["security", "penetration-testing"], "enriched": true, "function": ["security", "cryptography", "cli", "developer-tools"], "health_score": 22, "homepage": null, "language": "C", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["iagox86/hash_extender"], "name": "iagox86/hash_extender", "platform": ["windows", "cli", "cpp"], "pushed_at": "2025-01-27T18:44:38+00:00", "repo": "iagox86/hash_extender", "stars": 1211, "tags": ["hash-length-extension-attack", "md5", "sha1", "sha256", "sha512", "ctf", "offensive-security", "c", "cryptography", "linux", "macos"], "topics": [], "urls": [], "use_cases": ["perform a hash length extension attack", "forge a signature when a secret is prepended to hashed data", "test whether an application is vulnerable to length extension attacks", "solve CTF challenges involving hash extension", "generate valid hashes for appended data without knowing the secret key", "demonstrate weaknesses in MD5/SHA1-based MAC schemes"], "what_it_is": "A C command-line tool that automates hash length extension attacks against algorithms like MD4, MD5, SHA-1, SHA-256, SHA-512, RIPEMD-160, and WHIRLPOOL. It lets an attacker forge valid hashes for data appended to a string whose hash uses an unknown secret prefix.", "when_to_avoid": ["you need to hash data normally rather than forge extension hashes", "the target uses HMAC or length-extension-resistant algorithms like SHA-224/384 or SHA-3", "you need a library API rather than a command-line tool"], "when_to_choose": ["you need a ready-made, multi-algorithm tool for length extension attacks", "you're doing security research, penetration testing, or CTF challenges", "you want a small, dependency-free C tool"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/hash_extender", "repo": "iagox86/hash_extender", "role": "main", "score": 34}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.131022+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:18:03.874692+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "05dd1c250997a57e9d91eadbf7d012360878eb1d86371c72b07a9bf5cb15c03a", "fetched_at": "2026-08-28T04:04:00.131022+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iagox86/hash_extender"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.131022+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:18:03.874692+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "05dd1c250997a57e9d91eadbf7d012360878eb1d86371c72b07a9bf5cb15c03a", "fetched_at": "2026-08-28T04:04:00.131022+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iagox86/hash_extender"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:18:03.874692+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "05dd1c250997a57e9d91eadbf7d012360878eb1d86371c72b07a9bf5cb15c03a", "fetched_at": "2026-08-28T04:04:00.131022+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iagox86/hash_extender"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.131022+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.131022+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.131022+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:18:03.874692+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "05dd1c250997a57e9d91eadbf7d012360878eb1d86371c72b07a9bf5cb15c03a", "fetched_at": "2026-08-28T04:04:00.131022+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iagox86/hash_extender"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.131022+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.131022+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:18:03.874692+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "05dd1c250997a57e9d91eadbf7d012360878eb1d86371c72b07a9bf5cb15c03a", "fetched_at": "2026-08-28T04:04:00.131022+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iagox86/hash_extender"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.131022+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.131022+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.131022+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:18:03.874692+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "05dd1c250997a57e9d91eadbf7d012360878eb1d86371c72b07a9bf5cb15c03a", "fetched_at": "2026-08-28T04:04:00.131022+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iagox86/hash_extender"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.131022+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.131022+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:18:03.874692+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "05dd1c250997a57e9d91eadbf7d012360878eb1d86371c72b07a9bf5cb15c03a", "fetched_at": "2026-08-28T04:04:00.131022+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iagox86/hash_extender"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:18:03.874692+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "05dd1c250997a57e9d91eadbf7d012360878eb1d86371c72b07a9bf5cb15c03a", "fetched_at": "2026-08-28T04:04:00.131022+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iagox86/hash_extender"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:18:03.874692+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "05dd1c250997a57e9d91eadbf7d012360878eb1d86371c72b07a9bf5cb15c03a", "fetched_at": "2026-08-28T04:04:00.131022+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iagox86/hash_extender"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:18:03.874692+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "05dd1c250997a57e9d91eadbf7d012360878eb1d86371c72b07a9bf5cb15c03a", "fetched_at": "2026-08-28T04:04:00.131022+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iagox86/hash_extender"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 3, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5121, "days_push": 583, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 34, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}