- Home
- Encrypt
- Encrypt / Decrypt
- Serpent
Serpent Encryption & Decryption
Encrypt and decrypt text with Serpent, the AES finalist.
You'll need it again to decrypt. Nothing you type leaves this page.
OpenSSL's default is 10,000. Any number works: more makes the password slower to guess; decrypting needs the same number.
The usual choice with OpenSSL. Needs an IV; pads to whole blocks.
OpenSSL has no Serpent cipher.
Serpent, by Ross Anderson, Eli Biham and Lars Knudsen, came second in the AES competition. It encrypts 16-byte blocks with a 128-, 192- or 256-bit key through 32 rounds — a deliberately large safety margin that cost it speed against Rijndael, the winner that became AES — and no practical attack on it is known. Encrypt and decrypt text here with Serpent-256 by default (or 128 or 192) in CBC, ECB, CTR, CFB or OFB mode. With a password, the key and IV come from PBKDF2-HMAC-SHA256 and a random salt, and the output is stored in the Salted__ layout of openssl enc -pbkdf2; or enter your own key and IV in hex. Your text and keys never leave your device: it runs in your browser, free and with no sign-up.
How to encrypt text with Serpent
- Choose Encrypt or Decrypt. Type the text to encrypt, or paste the Base64 or hex text to decrypt — the format is detected automatically.
- Enter a password (Generate makes a strong one), or switch to Key & IV (hex) and enter or generate a key and a 32-digit IV (ECB has no IV).
- Pick the key size (256 bits by default) and the mode, CBC by default. To decrypt, use the same settings that encrypted the text.
- Copy or download the result, or press Swap to move it into the input and flip the direction.
Features
- Serpent with a 128-, 192- or 256-bit key, all 32 rounds
- CBC, ECB, CTR, CFB and OFB modes; PKCS#7 padding or none
- Standard byte order, the one of the NESSIE test vectors
- Password mode with PBKDF2-HMAC-SHA256 and the Salted__ header of openssl enc -pbkdf2
- Key & IV mode with your own hex key and IV, or generated ones
- Base64 or hex in and out; copy, download or Swap the result
Is it private?
Yes. Serpent runs in WebAssembly inside your browser; your text, password and key are never sent to a server or saved in the browser.
Frequently asked questions
Is Serpent secure?
Yes. No practical attack on full 32-round Serpent is known; it was designed to stay safe even if attacks improved, at the cost of speed. For text of ordinary size the speed difference doesn't matter. AES is supported almost everywhere, so choose Serpent when a system you exchange data with uses it.
Can OpenSSL decrypt Serpent?
No — OpenSSL doesn't include Serpent, so no openssl command reads this output. To use the data in another program, choose Key & IV mode and give that program the same key, IV, mode and padding (PKCS#7 for CBC and ECB).
Why doesn't Serpent data from another program decrypt?
If the key, IV and mode are right, the likely cause is byte order: some implementations write Serpent's input and output bytes in reverse — Bouncy Castle calls that variant Tnepres. This page uses the standard order of the NESSIE test vectors, so data from a Tnepres implementation won't decrypt here.
Can it open VeraCrypt volumes encrypted with Serpent?
No. VeraCrypt encrypts whole disks and container files with Serpent in XTS mode behind its own header; this page encrypts and decrypts text. Open VeraCrypt volumes with VeraCrypt; to lock a single file in your browser, use File Encryption.