CipherSaber-2 cipher

Encrypt or decrypt text with CipherSaber-2 — RC4 with a random 10-byte IV and repeated key setup (rounds). Text or encoded keys, hex or base64. Runs in your browser; nothing is uploaded.

Result

About this tool

CipherSaber-2 encrypts and decrypts text with the CipherSaber cipher — a deliberately minimalist symmetric cipher built on RC4 (ARCFOUR). You supply the key, optionally the rounds and encoding, and the tool handles the random initialization vector for you — handy for interoperating with CipherSaber implementations, solving CTFs, or learning how stream ciphers work.

Security warning

RC4 — and therefore CipherSaber — is cryptographically broken; practical attacks recover plaintext, and RC4 is banned from TLS. CipherSaber was designed as an easy-to-memorize teaching cipher, not to protect real secrets. Use this tool for interop, CTFs and education only. For real encryption use the aes-cipher, text-encrypt or encrypt-file tools instead.

Privacy

Everything runs in your browser via WebAssembly — your key and data never leave the device. Also available from the gizza CLI and in chat.

FAQ

Why is the ciphertext different every time I encrypt the same message?

Each encryption draws a fresh random 10-byte IV and prepends it to the output, so two runs never match — that's correct CipherSaber behavior. If you need reproducible output (e.g. for a test vector), supply an explicit 10-byte IV in the IV field, encoded in the selected hex/base64 format.

What rounds value do I need, and what about CipherSaber-1?

The CipherSaber-2 spec recommends 20 (the default). The value must be identical on encrypt and decrypt — a mismatch produces garbage. Set rounds = 1 to interoperate with original CipherSaber-1 messages.

Decryption failed with "not valid UTF-8" or "ciphertext too short" — why?

"Ciphertext too short" means the decoded input has fewer than 10 bytes, so there's no room for the IV — usually a truncated paste or the wrong encoding selected. "Not valid UTF-8" means RC4 ran but produced bytes that aren't text: almost always a wrong key, wrong rounds, or a hex/base64 mismatch.

Is there a limit on the key size?

Yes — RC4's key schedule caps the session key at 256 bytes, and the 10-byte IV is part of it, so your key (passphrase bytes, or decoded bytes in encoded mode) can be at most 246 bytes. An empty key is rejected.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool ciphersaber2 "Text to encrypt…" 'key=passphrase, or encoded key'

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/ciphersaber2/?data=Text%20to%20encrypt%E2%80%A6&operation=encrypt&key=passphrase%2C%20or%20encoded%20key&key_format=text&rounds=20&iv=blank%20%3D%20random%20IV&format=hex

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.