WhatsApp backups are encrypted using AES-256-GCM encryption with unique keys per device. The decryption feature supports multiple encryption formats (crypt12, crypt14, crypt15) and includes automatic key management for seamless decryption of previously seen devices.
crypt_files = []if os.path.exists("backups"): for root, _, files in os.walk("backups"): for f in files: if f.endswith('.crypt14') or f.endswith('.crypt15') or f.endswith('.crypt12'): crypt_files.append(os.path.join(root, f))
The tool recursively searches all subdirectories for encrypted backup files.
If E2E backup is enabled, view the 64-digit encryption key
4
Copy Key
Copy the key or note it securely (do not share with others)
Different methods exist for rooted devices or accessing key files directly from the device storage. The E2E backup key is the most accessible method for standard users.
If known offsets fail, the tool scans for valid IV and ciphertext positions:
for iv_s in range(0, 190): iv = data[iv_s:iv_s+16] for db_s in range(iv_s+16, iv_s+300): try: cipher = AES.new(key, AES.MODE_GCM, nonce=iv) ct = data[db_s:] res = cipher.decrypt_and_verify(ct[:-16], ct[-16:]) decrypted_data = zlib.decompress(res) print_success(f"Decrypted at IV:{iv_s}, DB:{db_s}") break except: pass if decrypted_data: break
Brute force scanning is computationally intensive but necessary for handling unknown encryption formats.
The tool provides clear feedback and retry options:
if not success: while not success: key = ui.ask("Enter 64-char hex key") if not validate_hex_key(key): ui.print_error("Invalid key format") continue with ui.spinner("Decrypting..."): if self.crypto_manager.decrypt_file(target_file, key, output_path): success = True # Save key... else: if not ui.confirm("Decryption failed. Retry?"): return
Key must contain only hexadecimal characters (0-9, a-f)
Remove any spaces or special characters
Check for copy-paste errors
Decryption failed with valid key
The key may be for a different backup file
WhatsApp Messenger and Business use different keys
The file may be corrupted
Try using the E2E backup key from WhatsApp settings
Saved key doesn't work
WhatsApp generates new keys when E2E backup is reset
Different devices have different keys
Keys are specific to each WhatsApp installation
Delete the saved key and enter the current key
Brute force scan takes too long
This is normal for unknown formats. The scan explores offset combinations to find valid IV and ciphertext positions. Let it complete or try a different backup file.