Salsa20 Stream Cipher Encrypt & Decrypt
The stream cipher that ChaCha20 was built from.
About this tool
Salsa20 is Daniel J. Bernstein's stream cipher and an eSTREAM portfolio winner — the direct ancestor of ChaCha20. It generates a keystream from a 256-bit key and nonce that is XORed with your message. This tool derives the key from your password with PBKDF2-SHA-256 and packages salt, nonce, and ciphertext into a single Base64 string.
Unlike ChaCha20-Poly1305, plain Salsa20 has no authentication tag — it protects confidentiality but not integrity. For new designs prefer the authenticated ChaCha20-Poly1305 tool. Everything runs locally via the audited @noble/ciphers library.
Like everything on encrypt.tools, this runs entirely in your browser — nothing you enter is transmitted or stored.
Frequently asked questions about Salsa20
What is the difference between Salsa20 and ChaCha20?+
ChaCha20 is a refinement of Salsa20 with a modified round function that improves diffusion and performance while keeping the same 256-bit security. Salsa20 came first (2005); ChaCha20 (2008) is now more widely deployed. Both are by Daniel J. Bernstein.
Is Salsa20 authenticated?+
Plain Salsa20 is not — it provides confidentiality only. If an attacker flips bits in the ciphertext, decryption returns altered plaintext without warning. Use ChaCha20-Poly1305 when you need tamper detection.
Is Salsa20 still secure?+
Yes. Salsa20/20 (the full 20-round version used here) has no known practical attacks and remains a respected cipher. It is used inside NaCl/libsodium's secretbox as XSalsa20.
Related tools
AES Encryption
Encrypt text with AES-256 in GCM, CBC, or CTR mode
XOR · BRUTEFORCEXOR Cipher
Bitwise XOR with a repeating key, plus single-byte bruteforce
CHACHA20 · AEADChaCha20-Poly1305
Modern authenticated stream cipher, password-based
RC4 · STREAMRC4 Stream Cipher
The classic (broken) stream cipher, for education and interop