Encrypt Online
Theme

OpenSSL AES Decrypt & Compatibility Checker

Inspect Salted__ payloads, test the exact PBKDF2 recipe, and diagnose bad decrypt

Inspect an OpenSSL Salted__ envelope and test one documented recipe at a time; this page does not guess passwords or claim that AES-CBC output is authenticated.
Inspect the envelope, then test the original recipeStandard Salted__ AES-CBC payloads only
Paste Base64 or hex, or inspect a local OpenSSL file.
Selected boundary; the envelope does not store this number.
Which OpenSSL Payloads This Tool Supports

This checker handles standard passphrase-based openssl enc envelopes that begin with Salted__ and contain AES-128-CBC, AES-192-CBC, or AES-256-CBC ciphertext. PBKDF2 supports SHA-1, SHA-256, SHA-384, and SHA-512. The CryptoJS / old OpenSSL preset is limited to AES-256-CBC with EVP_BytesToKey and MD5.

Raw -K/-iv ciphertext, -nosalt, explicit OpenSSL 3 -S output without an embedded header, -nopad, GCM, CMS, and non-AES ciphers are intentionally unsupported.

Why OpenSSL Says Bad Decrypt

bad decrypt usually means the selected recipe did not produce valid CBC padding. Match the original passphrase, AES size, KDF, digest, iteration count, salt length, and Base64 handling before changing anything else. The error does not identify which one differs.

What the Salted__ Header Tells You

The marker identifies a compatible salted envelope shape. It does not prove that OpenSSL created the value and it does not store the cipher, KDF, digest, iteration count, passphrase, or salt length. OpenSSL 3.2 added -saltlen for PBKDF2, so decryption must use the same length that encryption used.

Reproducible Evidence

This tool has a versioned public record with three synthetic cases. Each expected result is recomputed from the production diagnostic core during the release check; the record also publishes fixture and source SHA-256 digests.

  • OPENSSL-PBKDF2-SHA256-VALID-001valid
    A salted AES-256-CBC payload should decrypt with the recorded PBKDF2 recipe.
  • OPENSSL-PASSPHRASE-MISMATCH-002mismatch
    The same envelope is tested with a passphrase that does not match the original recipe.
    Expected code: BAD_DECRYPT.
  • OPENSSL-BASE64-MALFORMED-003malformed
    The payload contains characters outside standard Base64.
    Expected code: INVALID_BASE64.

Open the complete citation evidence record (JSON)

Implementation source-sha256:90ec572ae1ac1d21; verified 2026-08-05. Read the record's scope before citing a result; structural or cryptographic evidence is not automatically an identity or trust verdict.

OpenSSL AES Decrypt FAQ
Does a successful result prove the passphrase is correct?

No. AES-CBC is not authenticated, and an incorrect recipe can occasionally produce valid padding. Treat the output as a candidate and verify its expected structure or checksum separately.

Why can the same Salted__ payload use different settings?

The envelope stores the marker, salt bytes, and ciphertext. It does not store the cipher, digest, KDF, or iteration count, so those settings must come from the original command or application.

Can this decrypt this site's normal encrypted text?

No. The homepage and generic Decrypt page use a different CryptoJS-compatible format and recipe. Use this checker only for the supported OpenSSL envelope described above.

What does this checker do?

It inspects an OpenSSL Salted__ envelope and tests the selected PBKDF2 and AES-CBC recipe. It does not add inputs to the URL or browser storage.