{"id":19523308,"url":"https://github.com/niklasb/crhash","last_synced_at":"2026-06-19T09:31:45.621Z","repository":{"id":31493572,"uuid":"35057768","full_name":"niklasb/crhash","owner":"niklasb","description":"A customizable hash brute forcer","archived":false,"fork":false,"pushed_at":"2017-09-09T12:32:38.000Z","size":75,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-26T01:23:14.797Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/niklasb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-05-04T20:30:01.000Z","updated_at":"2019-11-27T21:24:37.000Z","dependencies_parsed_at":"2022-09-09T14:40:27.979Z","dependency_job_id":null,"html_url":"https://github.com/niklasb/crhash","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/niklasb/crhash","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niklasb%2Fcrhash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niklasb%2Fcrhash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niklasb%2Fcrhash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niklasb%2Fcrhash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/niklasb","download_url":"https://codeload.github.com/niklasb/crhash/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niklasb%2Fcrhash/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34526065,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-19T02:00:06.005Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T00:43:00.905Z","updated_at":"2026-06-19T09:31:45.594Z","avatar_url":"https://github.com/niklasb.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"## crhash, a customizable hash cracker\n\ncrhash is a hackable hash cracker, meant to be customized for your special\ncracking needs. Basically it's just a framework to enumerate strings given\na pattern and a charset and you can plug in your own hash computation and\nchecks.\n\nIt includes support for OpenCL, so if you want to use that you just have to\nprovide a kernel that computes a hash and checks whether it fulfills a certain\nproperty. The framework will then run your kernel and find the strings that you\nmarked as positive.\n\nCurrently customization is done by tweaking the config.h header file. In the\nfuture we might add the option to support compiled plugins in the form of\na shared library.\n\nThe included config searches for strings whose hexed MD5 hash is of the form\n0eXXX..XX, where all the positions X have numeric values (0..9, not a..f).\n\n### Usage\n\n    Usage: crhash [FLAGS] pattern_string alphabet0 [alphabet1 [...]]\n\n    pattern_string\n      is a string with ? chars as placeholders\n\n    alphabetX\n      is an alphabet specification in one of two formats:\n        =s     represents the explicit set of characters in s\n        :lo:hi represents the set of characters with ASCII values\n               in the inclusive range lo..hi\n\n      You can provide different charsets for the different wildcard positions\n      in the pattern string. The last character set you provide will be used\n      for the remaining positions.\n\n    OPTIONS\n      -t integer  Use the given number of threads\n      -s          No verbose output, just dump the result string\n      -a          Find all matching strings\n      -c          Use OpenCL. Currently only supports a subset of patterns,\n                  specifically ones where the wildcards are all contiguous and\n                  there is only one contiguous charset. I.e. \u003cprefix\u003e??...??\u003csuffix\u003e\n      -h          Show this help\n\n    EXAMPLES\n      crhash -t 4 \"My name is ???\" :97:122\n\n### Building\n\ncrhash is built using CMake:\n\n    $ mkdir build\n    $ cd build\n    $ cmake /path/to/crhash\n    $ make\n\nYou can also use the included `run` wrapper script, which will create a build\ndirectory in the current working dir:\n\n    $ cd /path/to/crhash\n    $ ./run -h\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fniklasb%2Fcrhash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fniklasb%2Fcrhash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fniklasb%2Fcrhash/lists"}