openwall / openwall/john

"Unknown hash" cracker format

Open
#3,415 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

new format RFC / discussion
Dominant language
C
Stars
13.6k
Forks
2.6k
PR merge metrics
No merged PRs in 30d

Description

Here's a crazy idea I got from the PCrack team name of 907f92033ed720bba4da2f3e08588648 😄

We could write an OpenCL format where input is a 128-bit hash of unknown type. Create a format that for every candidate p tries md4(p), md5(p), sha1(p) and so on, also including some common combinations like md5(md5($p)), sha1(md5($p)) and so on (and also doing eg. SHA-2 and SHA-3) as well as things like md5(utf16le(p)). For hashes larger than 128-bits we compare the first (and last?) 128 bits of the resulting hash.

This means we have "GPU-side acceleration" of, say, 16x or more even without mask but we need GPU-side mask as well.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the issue proposal, which describes an OpenCL format for trying multiple hash algorithms and combinations against unknown 128-bit hashes. There are no files, tests, or entry points identified; done would require agreeing on the supported algorithms, hash comparisons, input encodings, and GPU-side masking before implementation.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
cryptography, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.