DES Encryption & Decryption Tool
Supports DES and Triple DES (3DES) with five encryption modes
Encryption Settings
What is DES?
DES (Data Encryption Standard) was created in 1977 by IBM and modified by the NSA before becoming a US federal standard. It uses a Feistel network that splits 64-bit plaintext into two halves and runs them through 16 rounds of transformation. The key is nominally 64 bits, but 8 bits are reserved for parity checks, leaving 56 bits of actual key material. That 56-bit key was considered secure at the time, but by 1999 a custom-built machine could brute-force it in 22 hours. Triple DES (3DES) was developed to extend DES's lifespan - it applies DES encryption three times with three different keys, giving an effective key length of 168 bits. 3DES is still widely used in financial systems, including EMV chip cards and many banking protocols. While AES has officially replaced DES as the encryption standard, DES and 3DES remain in use across legacy systems, financial protocols, and embedded devices. This tool supports both DES and 3DES with CBC, ECB, CFB, OFB, and CTR modes, making it useful for compatibility testing and cryptography learning.
How to Use
Getting Started
- Choose the algorithm: DES (56-bit key) or 3DES (168-bit key)
- Select an encryption mode - CBC is recommended
- Pick a padding scheme - PKCS#7 works for most cases
- Enter a key or click "Generate Random Key"
- For modes that require an IV, enter or generate one
- Type your plaintext (to encrypt) or ciphertext (to decrypt) on the left
- Results appear on the right automatically
Encryption Modes
Tips
- Use AES if you can - DES exists mainly for legacy compatibility
- 3DES is much more secure than DES, but roughly three times slower
- Always use a different random IV for each encryption
- Avoid ECB for encrypting data longer than 8 bytes
- Generate random keys instead of typing memorable strings
Examples
DES-CBC Encryption
Encrypt text using CBC mode
Plaintext: Hello World
Key (hex): 0123456789abcdef
IV (hex): fedcba9876543210
Mode: CBC / PKCS#7
Output: Base64-encoded ciphertext3DES Encryption
Triple DES for stronger security
Algorithm: Triple DES
Key (hex): 24 bytes (48 hex chars)
Mode: CBC / PKCS#7
The 168-bit key length is still considered secure todayECB Single Block
ECB works fine for exactly 8 bytes of data
Plaintext: 8 bytes
Key: 0123456789abcdef
Mode: ECB / PKCS#7
Note: Don't use ECB for data longer than 8 bytesFAQ
What's the difference between DES and 3DES?
DES uses a 56-bit effective key and is no longer considered secure - a standard PC can brute-force it in days. 3DES applies DES three times with three separate keys, giving a 168-bit effective key length, which is vastly more secure. If you don't need legacy compatibility, go with 3DES or switch to AES entirely.
Is DES still secure?
Plain DES is not secure. A dedicated machine cracked it in 22 hours back in 1999, and today GPU clusters can do it in hours. For real security needs, use AES or 3DES. That said, DES is perfectly fine for learning cryptography concepts or testing legacy system compatibility.
Why does the ciphertext change every time?
That's expected. All modes except ECB use a random IV (initialization vector), so encrypting the same plaintext with the same key still produces different ciphertext each time. As long as you have the correct key and IV, decryption will always recover the original data.
What is an IV?
An IV (Initialization Vector) is an extra parameter used during encryption. It ensures that identical plaintext encrypted with the same key produces different ciphertext each time, preventing attackers from spotting patterns. The IV doesn't need to be secret, but should be different for each encryption. For DES, the IV is always 8 bytes.
Should I use Hex, Text, or Base64 for the key?
These are just different representations of the same key. Hex uses two characters per byte and is the most straightforward. Text uses the raw bytes of whatever you type, which is convenient but encoding-dependent. Base64 is more compact. Hex is recommended - it's the hardest to get wrong. "Generate Random Key" creates one in whatever format you've selected.
Why is the ciphertext longer than the plaintext?
Block ciphers require data to be a multiple of 8 bytes, so PKCS#7 padding adds 1 to 8 bytes. The output format also matters: Base64 adds about 33% overhead, and Hex doubles the size. If you select NoPadding, the plaintext must be exactly 8 bytes or encryption will fail.
Can I use ECB mode?
You can, but it depends on what you're encrypting. ECB encrypts each 8-byte block independently, so identical blocks produce identical ciphertext. For a single 8-byte block, ECB is fine. For longer data like text or files, ECB leaks patterns in the plaintext and should be avoided. Short answer: short data is OK, long data is not.
Is this tool safe? Will my data be exposed?
All encryption and decryption happens locally in your browser using the crypto-js library. No data is sent to any server. However, browser environments are less secure than dedicated hardware - keys could potentially be exposed through browser extensions or developer tools. This tool is great for learning, testing, and everyday use. For production, consider a dedicated encryption solution.