Cyber Research Wiki

John the Ripper

John the Ripper is an open-source, offline password auditing tool from Openwall. The community “Jumbo” edition adds extensive hash/credential format support and optional GPU acceleration via OpenCL.

Overview

John the Ripper (JtR) is a general-purpose suite for offline password testing that attempts to recover plaintexts from hashed or otherwise derived credentials. It operates by mapping target artifacts—such as operating-system password hashes, application stores, or credentials extracted from documents and archives—into internal formats and running candidate-generation strategies to verify guesses. The project emphasizes password auditing rather than web testing, yet it appears in broader security workflows that include web authentication when artifacts can be reduced to supported formats (e.g., assessing weak symmetric JWT secrets via HMAC-style verification). The community-maintained Jumbo edition substantially broadens format coverage (including Unix crypt variants, NTLM, bcrypt, PBKDF2-based schemes, and numerous document/archive/SSH formats) and exposes hardware acceleration via OpenCL where supported. Parallelism (OpenMP/fork) and device offloading are used to scale performance within the constraints of each format’s algorithmic cost.

What It Is

JtR is an offline password auditing and recovery toolkit maintained by Openwall, with a widely used Jumbo branch that extends capabilities and format coverage. It is applied across operating systems, applications, archives/documents, and other credential artifacts that can be converted to JtR’s format syntax. In web-adjacent contexts, practitioners sometimes evaluate weak symmetric JWT secrets by treating HS256 tokens as HMAC-SHA256 targets; JtR relies on its generic HMAC-SHA256 format for this purpose rather than a dedicated JWT format. Its role is to measure real-world resistance of stored secrets to offline attack, inform policy, and validate defensive choices such as KDF selection, secret length, and entropy requirements.

How It Works

JtR consumes inputs normalized into internal formats that define how to test a candidate: the format encapsulates hashing, KDF parameters, HMAC construction, salting, and comparison. The Jumbo edition provides hundreds of such formats, including OpenCL-enabled variants when device offload is meaningful. Candidate generation proceeds via multiple attack modes: single-crack (leveraging user/context data), wordlist attacks augmented with rules for probabilistic mangling, incremental and mask-based brute force for structured keyspaces, and hybrids. Execution scales through CPU parallelism (OpenMP and process forking) and, for compatible formats, GPU acceleration via OpenCL. Results are recorded in a potfile for reuse and deduplication, with status metrics exposing performance and progress characteristics.

Core Concepts

Typical Workflow

Use Cases

Limitations

Related Tools

Evidence Gaps

Sources

Confidence

high