openwall / openwall/john

Optionally distribute salts with --node, --fork, MPI

Open
#4,036 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

We might want to introduce a mode where we'd distribute salts rather than candidate password ranges across nodes, or where they'd do both at once.

This is for the reasons given in #4035 and to improve scalability in cases when salt count is large but candidate password count alone isn't large enough to fully use the available compute resources when working on just one salt at a time. Distributing both salts and candidate passwords may also be needed when neither count alone is large enough to fully use the resources (and the hashes are so slow to compute that this matters despite of the low candidate password count).

(Historically, Crack included scripts to distribute salts across nodes. For good efficiency, this requires node count to be [much] greater than [remaining] salt count. We opted to distribute candidate passwords instead, which doesn't have that requirement, but it has other limitations as noted above. We might want to get the best of both worlds.)

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

The issue does not identify source files, tests, or entry points; begin by tracing the existing --node, --fork, and MPI candidate-distribution paths. Define the scope for optional salt distribution and combined salt/candidate distribution, then verify that the selected work is balanced across available resources and preserves existing modes.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
distributed-systems, performance, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
18/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.