1Password(Agile Keychain) Hash

Technical details, regex signatures, and cracking commands for the 1Password(Agile Keychain) algorithm.

Regex Identification Signature:
^[0-9]{4}:[a-f0-9]{16}:[a-f0-9]{2080}$
Hashcat Command (Mode: 6600):
Not supported natively by John the Ripper
← Back to Hash Identifier

What is 1Password(Agile Keychain)?

The **1Password Agile Keychain** hash format is a proprietary cryptographic scheme introduced by AgileBits (now 1Password) in its early password management software, designed to store hashed credentials in a compact, reversible manner for offline decryption. Originating in the mid-2000s, it predates modern best practices in password hashing by relying on a **SHA-1-based** construction with a **customized key derivation function (KDF)** that combines the plaintext password with a **static salt** (derived from the user’s master password and a fixed seed) and a **cryptographic nonce** per item. The format encodes the resulting hash in a **binary blob** (typically 20 bytes for SHA-1) followed by metadata (e.g., item flags, creation timestamp, and a **16-byte HMAC-SHA1** for integrity verification), all wrapped in a **custom binary header** (e.g., `0x01` for version, `0x02` for item type). Its primary use-case was offline password storage, where reversible hashing allowed 1Password to decrypt vaults without relying on a central server, though this design choice introduced significant security trade-offs. The format was later deprecated in favor of **Argon2** and **PBKDF2-HMAC-SHA256** in modern iterations, but legacy databases (e.g., pre-4.x versions) still employ this vulnerable scheme.

The **1Password Agile Keychain** format is critically flawed due to its **lack of modern cryptographic safeguards**, making it susceptible to brute-force and precomputed attack vectors. The **static salt derivation** (based on the master password’s SHA-1 hash) enables **rainbow table attacks** if passwords are reused across systems, as the salt space is effectively reduced to the output of SHA-1 (160 bits), which is trivial to precompute. Additionally, the **SHA-1-based KDF** is vulnerable to **length-extension attacks** and suffers from known collision weaknesses, allowing adversaries to craft malicious inputs that bypass the HMAC verification. The format’s **reversible design** also enables **GPU-accelerated cracking** via tools like **Hashcat** or **John the Ripper**, as the per-item nonce is often weak (e.g., sequential counters) and the hash can be brute-forced in parallel. Furthermore, the **lack of key stretching** (e.g., no iterative hashing or memory-hard functions) allows modern hardware to evaluate billions of guesses per second, rendering the scheme insecure against determined attackers—especially when combined with leaked password databases or credential stuffing. Even with a strong master password, the **absence of a per-item salt** and **predictable nonce patterns** exacerbate offline cracking feasibility.

Identifying 1Password(Agile Keychain) Hashes

Identifying a hash blindly is often difficult because multiple algorithms can output strings of the exact same length. For example, a standard 32-character hexadecimal string could be MD5, NTLM, MD4, or LM. To definitively identify 1Password(Agile Keychain), security researchers analyze the hash against a strict regular expression (regex) signature (shown above) to find structural matches.

How to Crack 1Password(Agile Keychain)

If you need to recover the plaintext password for a 1Password(Agile Keychain) hash during a penetration test or forensics investigation, you must supply the correct module ID to your cracking software. Use the exact commands provided at the top of this page to target the hash successfully.