Trithemius cipher encoder and decoder
Hello World becomes Hfnos Buytm: the first letter moves 0 places, the second 1, the third 2 and so on, wrapping after Z, while spaces and punctuation stay put. Decrypting reverses the same schedule. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Text
- Hello World
- Calculation mode
- encrypt
- Result
- Hfnos Buytm
- Encoding
- trithemius
- Input length
- 11
- Output length
- 11
This Trithemius cipher tool encrypts or decrypts text with the classic progressive Caesar substitution that increases the shift by one for each successive letter, following the historical tabula recta idea without needing a separate keyword. The first alphabetic character uses shift zero, the second uses shift one, the third uses shift two, and so on with modular wrap around a twenty-six letter alphabet, so the same plaintext letter can map to different ciphertext letters depending only on how many letters came before it. Case is preserved on every letter, while spaces, digits, punctuation, and other non-letters pass through unchanged and never advance the letter index, which keeps readable phrase structure around the scrambled alphabet. A standard check is Hello World encrypting under progressive shifts and decrypting back to the original under the same rule.
What the Trithemius cipher is and what this tool returns
The Trithemius cipher is a progressive monoalphabetic substitution over the twenty-six letter Latin alphabet, often introduced as the ancestor of the Vigenère table where each row is a Caesar alphabet shifted one step further than the previous row. Instead of a repeating keyword, the key stream is simply the natural numbers starting at zero: letter index zero uses shift zero, index one uses shift one, and after twenty-five the modular map wraps so the pattern continues cleanly for longer messages.
Encryption adds the letter index modulo twenty-six; decryption subtracts it with the same modular wrap so the two operations are exact inverses on the same progressive schedule. Non-letter characters never change and never advance the letter index, which keeps spacing and punctuation readable around the scrambled letters and matches the textbook rule used in classroom demos of the tabula recta. This page always uses that fixed progressive map with case preservation and no optional alphabet tables that could drift between locales.
Trithemius in lessons, puzzles and practice sets
Developers and educators meet the Trithemius cipher in capture-the-flag warm-ups, textbook chapters on classical cryptology, and lightweight demos that show how progressive shifts sit between a fixed Caesar and a keyword-driven Vigenère. Frontend teams can scramble sample phrases for screenshots without inventing a custom alphabet, then recover them with decrypt under the same progressive rule. Backend services encode short challenge strings for puzzle APIs or teaching sandboxes where students must reverse the increasing shift schedule to unlock the next step.
Quality engineers generate deterministic encrypt and decrypt pairs for contract tests so a middleware that claims Trithemius support cannot silently switch to a single fixed Caesar offset. Contest organizers precompute answer keys for modest English phrases without trusting opaque web toys that change spacing rules or force uppercase-only output. Product and education tools use the transform when a learner pastes ciphertext and the UI must show the recovered plaintext under the documented progressive map.
Pair it with other classical encoding helpers when you are building a small lab of free, deterministic text tools, and never treat Trithemius as a substitute for modern authenticated encryption in real systems.
What you can do with it
CTF and classical cipher practice
Encrypt and decrypt progressive-shift phrases for puzzles, classrooms, and capture-the-flag warm-ups without inventing a custom alphabet.
History-of-crypto lessons
Demonstrate tabula-recta progressive substitution, case-preserving transforms, and why non-letters should not advance the letter index.
FAQ
What does the Trithemius cipher tool cost?
It is free in your browser on this page.
How do I decrypt a Trithemius message?
Send the ciphertext as text and set mode to decrypt (or dec, decode, d). Encryption is the default when mode is omitted.
What happens if the text is empty?
Provide a non-empty string to encrypt or decrypt.
Which characters are shifted?
Only alphabetic letters A–Z in either case. Spaces, digits, punctuation, and other symbols pass through and do not advance the letter index.
Is Trithemius secure for real secrets?
No. It is a classical teaching cipher with a fixed progressive schedule. Use modern authenticated encryption such as AES-GCM for real confidentiality.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/enc/trithemius \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello World"}'const res = await fetch("https://api.kit.forhosting.com/enc/trithemius", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello World"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/trithemius",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello World"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/trithemius", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello World"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello World"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/trithemius", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"text": "Hello World"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.trithemius",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Use it free in the browser for CTF warm-ups, history-of-crypto lessons, and reversible puzzle worksheets, or call the API at $0.002 per successful request when pipelines need reproducible Trithemius transforms in automated services.
What the Trithemius cipher is and what this tool returns
The JSON response includes result for the transformed string, encoding fixed to trithemius, mode set to encrypt or decrypt, input_length and output_length which match because the transform is length-preserving, shifted_chars counting how many letters actually moved, and a formula string that restates the modular mapping for documentation and tests. There is no streaming path and no silent fallback to a fixed Caesar or a keyword Vigenère: either you supply non-empty text, or the request fails with invalid_input. If you need AES, ROT47, Base64, Vigenère with a keyword, or Morse, use those dedicated endpoints; this landing answers only the progressive Trithemius contract that crypto history chapters and CTF warm-ups already describe.
How text and mode are read and how results stay reproducible
The preferred payload fields are text for the message and optional mode for encrypt or decrypt. Text accepts aliases such as input, value, s, message, plaintext, and ciphertext so forms and SDK clients can reuse existing column names without rewriting request builders. Mode defaults to encrypt when omitted and also accepts short aliases such as enc, encode, e for encrypt and dec, decode, d for decrypt; any other string fails validation with a clear invalid_input message. Missing text, empty text, and non-string types all raise invalid_input so a blank form does not look like a successful no-op transform. Every letter is processed with the fixed progressive map and the letter index advances only on alphabetic characters, so encrypting then decrypting always restores the original payload without a secret key field. Pair the free browser run on this page with the priced API when you need the identical mathematical result inside an automated pipeline without re-implementing the increasing-shift stream yourself. Invalid inputs return invalid_input and are not charged, which keeps validation cheap while successful transforms remain a fixed item price of $0.002 per completed request in the KIT catalog.
Where Trithemius fits in lessons, puzzles, and test fixtures
On this page the work runs entirely in your browser; through the API each successful lookup costs $0.002, failed validation is not charged, and nothing is stored after the response returns. That split — free interactive exploration and a priced, identical API — matches the rest of the KIT tier-A catalog and lets you move from a classroom demo to an automated pipeline without changing the transformed result.
Integration use cases
Deterministic CI fixtures
Generate reproducible Trithemius ciphertext and plaintext pairs for unit tests, golden files, and contract checks.