DES Encryption (Legacy)

Encrypt text with legacy DES in CBC, CFB, OFB or ECB using an OpenSSL des-cbc passphrase or an 8-byte hex key. For compatibility only – DES is insecure.

DES is insecure: its 56-bit key can be brute-forced in hours. Use it only to read legacy data, never to protect anything new. Use AES instead.

Output uses the OpenSSL "Salted__" format in Base64: an 8-byte random salt followed by the ciphertext. Key and IV are derived from the passphrase and the salt, so the same text gives a different result every time. Equivalent command:

openssl enc -des-cbc -md md5 -a -A -provider legacy -provider default -k '…'

Runs entirely in your browser. Your data is never uploaded.

What is DES Encryption?

Encrypts data with the Data Encryption Standard, the 1977 block cipher with a 64-bit block and an effective 56-bit key. It exists here to reproduce or interoperate with old systems (banking, smart cards, legacy files) – not to protect anything.

How to use DES Encryption

  1. Keep Key source on Passphrase (OpenSSL-compatible) and type a Passphrase, or switch to Raw key + IV (hex) and enter the exact key and IV in hex.
  2. Choose the Mode and Padding (CBC with PKCS#7 is the OpenSSL default).
  3. Type or paste the Plaintext (or switch the input encoding to Hex for binary data).
  4. Click Encrypt, pick Base64 or Hex as the Output encoding and copy the ciphertext.

Example

Input
Raw key 133457799bbcdff1, mode ECB, padding None, hex plaintext 0123456789abcdef
Output
85e813540f0ab405

Classic DES known-answer test, Hex output encoding.

When to use DES Encryption

Use it only when a legacy protocol or file format requires DES, or to generate known-answer test vectors. For anything new use AES. Triple DES is also deprecated.

How DES Encryption works

DES runs 16 Feistel rounds on 8-byte blocks. In passphrase mode an 8-byte key and IV are derived from your passphrase and a random salt (EVP_BytesToKey MD5 or PBKDF2-SHA256) and the result is the OpenSSL Salted__ format, compatible with openssl enc -des-cbc -provider legacy. In raw mode you give an 8-byte key (16 hex characters; the parity bits are ignored) and an 8-byte IV. CBC/ECB use PKCS#7 padding by default; CFB and OFB are 64-bit stream modes.

Common Use Cases

  • Reproduce DES test vectors such as key 133457799BBCDFF1 / plaintext 0123456789ABCDEF
  • Create test data for a legacy payment or smart-card system
  • Teach how block ciphers and modes work with a classic example
  • Encrypt data for an old application that only supports DES

Security Note

DES uses a 56-bit key that can be brute-forced in hours on commodity hardware. Use this tool only to read or reproduce legacy data; never encrypt new data with DES.

FAQs

Is DES secure?

No. Its 56-bit key was brute-forced publicly in 1998 (EFF DES Cracker) and today takes hours. Use AES for real data.

Why does OpenSSL 3 say the cipher is unsupported?

OpenSSL 3 moved DES to the legacy provider. Add -provider legacy -provider default to the command, e.g. openssl enc -des-cbc -md md5 -a -A -provider legacy -provider default -k ….

How long must the key be?

Exactly 8 bytes (16 hex characters). The lowest bit of each byte is a parity bit that DES ignores, so keys that differ only in those bits are equivalent.

Explore more categories