On this page
Ciphertext is data in its encrypted form, the output of an encryption algorithm, which looks like random bytes and can be turned back into the original, called plaintext, only by someone who holds the right key.
NIST's glossary puts it in four words: "Data in its encrypted form" (NIST). In everyday writing it is sometimes called "cipher", but a cipher is the algorithm, such as AES; ciphertext is what the algorithm produces.
What good ciphertext gives you
With a modern scheme such as AES-256-GCM, ciphertext reveals nothing about the content to someone without the key, and authenticated encryption adds a second property: any change to the ciphertext is detected when it is decrypted. Encrypting the same value twice with a fresh nonce gives different ciphertexts, so nobody can tell that two records hold the same secret.
What ciphertext still reveals
Ciphertext isn't invisible. Around it, and sometimes in it, there is information:
- Length. Most encryption preserves the size of the input, give or take a few bytes. A 40-character key and a 4 KB certificate look different.
- Timing and frequency. When ciphertext changes, and how often, says something about activity.
- Everything stored next to it. Names, labels, owners and access lists are usually plain. See metadata exposure.
Padding inputs to fixed sizes hides length. Nothing hides the fact that data exists and changes.
Common mistakes
- Calling encoded data encrypted. Base64 or hex isn't ciphertext; anyone can decode it.
- Keeping the key next to the ciphertext, which makes the encryption decorative.
- Assuming old ciphertext stays safe. If a key was ever exposed, every ciphertext made with it is readable to whoever has the key, forever. That's why removing someone from a vault needs new keys, and why key rotation protects only what is encrypted afterwards.
What a Crunu server stores
The Crunu server stores one encrypted record per version of an environment: all of its files and variables together, encrypted on the device with the environment's key using AES-256-GCM, and padded to a multiple of 4,096 bytes before encryption so sizes are blurred. Variable names and file paths are inside the ciphertext, not next to it. Environment keys are stored sealed to each recipient's public key, so the server holds ciphertext of keys as well as of values.
What the server sees in plain form is metadata: names of organizations, projects and environments, people's email addresses, the audit log and the sizes and times of versions. The full list is in what the server sees, and the comparison with services that decrypt on the server is in who can decrypt your secrets?.
Sources
- NIST CSRC glossary: ciphertext, checked October 30, 2026.
From the blog
Migration
Moving team secrets out of Ansible Vault
Why teams move secrets out of Ansible Vault, how to export them with ansible-vault, bring them into per-environment storage, and keep playbooks working.
Offboarding guide
Migration
Migrating from EnvKey: moving your environments
EnvKey Cloud closed on February 1, 2025, and the open source code hasn't changed since. How to export what's left, flatten it, and keep the encryption model.
Who can decrypt guide
Self-hosting
Workers, Vercel or Cloud Run: where to host a vault
Docker, Cloudflare Workers, Vercel or Google Cloud Run? What changes for a self-hosted Crunu server on each, the limits that matter, and two choices made once.
Self-hosting guide