Fractionated Morse
Encrypt with Fractionated Morse and a keyword: COME TO THE EAST with the key GERMANY becomes FBKKCOKWGYXSQB, because the message is turned into Morse, cut into groups of three symbols and each group swapped for a keyed letter. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Text
- COME TO THE EAST
- Key
- GERMANY
- Calculation mode
- Encrypt
- Result
- FBKKCOKWGYXSQB
- Length
- 14
- Letters mapped
- 13
- Alphabet
- GERMANYBCDFHIJKLOPQSTUVWXZ
Fractionated Morse is a classical hand cipher that turns ordinary letters into International Morse, inserts letter and word separators, then re-encodes groups of three Morse symbols through a keyword alphabet so the final ciphertext looks like ordinary capital letters again. Unlike a plain Morse translator that only shows dots and dashes, this tool fractionates the stream and substitutes each trigram with a letter from a mixed alphabet built from your key. You paste plain text or ciphertext, supply a keyword that shapes the twenty-six-letter alphabet, choose encrypt or decrypt, and receive a deterministic result with the Morse stream, letter counts, and filled alphabet for verification. Spaces become word boundaries while other non-letters are skipped, so only A–Z participate in the Morse step.
How Fractionated Morse maps Morse trigrams through a keyword
Encryption begins by converting every Latin letter to its International Morse pattern of dots and dashes. Between consecutive letters inside a word the cipher inserts a single letter-separator symbol written as the letter x in the intermediate stream; between words it inserts two x symbols so word boundaries survive the later regrouping. The resulting long string uses only three symbols: the Morse dit, the Morse dah, and the separator x.
That string is padded with trailing x symbols when needed so its length is always a multiple of three, then read left to right in fixed trigrams. There are twenty-seven possible three-symbol strings over a three-symbol alphabet, but the all-separator triple is never used, leaving exactly twenty-six units that map one-to-one onto the Latin alphabet. Your keyword builds that alphabet by writing unique key letters first in order of appearance and filling the rest with the remaining A–Z letters in natural order.
Each Morse trigram is looked up in a fixed textbook order and replaced by the letter sitting at the same index in the keyed alphabet, producing an uppercase ciphertext that hides both the Morse patterns and simple letter frequencies. Decryption reverses the map: every ciphertext letter expands back to its three-symbol unit, the units concatenate into the Morse stream, padding x symbols at the end are discarded, and the stream is parsed into letters and spaces using the same x and xx rules.
Where Fractionated Morse tools show up in real work
Introductory cryptography and history-of-ciphers courses assign Fractionated Morse drills so students practice International Morse, separator conventions, and keyword alphabets in one exercise; a single trusted oracle that encrypts and decrypts with a fixed trigram table speeds homework demos and auto-graders. Capture-the-flag challenges and puzzle hunts still hide Fractionated Morse messages behind a short keyword, and solvers want a fast, predictable implementation rather than a general cryptanalysis suite that guesses unknown keys.
Support and content teams sometimes lightly encode spoilers, quiz answers, or internal labels with a shared keyword and need the reverse path without installing a language-specific crypto library. If you need plain Morse without fractionation, a Bifid or Trifid Polybius fractionator, a Caesar letter shift, or automatic frequency-analysis recovery of unknown keys, treat those as separate search intents and landings rather than overloading this classical Fractionated Morse page.
What you can do with it
Classroom Fractionated Morse demos
Encrypt and decrypt sample phrases with a shared keyword so intro-crypto lessons show Morse, x/xx separators, and keyed trigrams on one ground-truth oracle.
Puzzle and CTF Fractionated Morse challenges
Encode or reverse Fractionated Morse ciphertexts for challenge strings without writing a one-off script for every problem set.
FAQ
What is the Fractionated Morse cipher?
A classical cipher that converts letters to International Morse, inserts x between letters and xx between words, groups the stream into three-symbol units, and maps each unit to a letter through a keyword alphabet. This tool implements that textbook process with a fixed twenty-six-trigram table.
Why is the key required?
The keyword builds the mixed A–Z alphabet (unique key letters first, then the rest of the alphabet).
How do I decrypt a Fractionated Morse ciphertext?
Set mode to decrypt, paste the ciphertext letters, and use the same keyword that encrypted them. Only Latin letters are used; non-letters are skipped.
How is this different from a plain Morse translator?
Plain Morse (enc.morse) only shows dots and dashes. Fractionated Morse regroups Morse symbols into trigrams and substitutes them through a keyword alphabet so the output is letter ciphertext, not a Morse display.
What does it cost?
The browser tool is free and runs locally.
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/fractionated-morse \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"COME TO THE EAST","key":"GERMANY"}'const res = await fetch("https://api.kit.forhosting.com/enc/fractionated-morse", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "COME TO THE EAST",
"key": "GERMANY"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/fractionated-morse",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "COME TO THE EAST",
"key": "GERMANY"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/fractionated-morse", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"COME TO THE EAST","key":"GERMANY"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"COME TO THE EAST","key":"GERMANY"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/fractionated-morse", 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": "COME TO THE EAST",
"key": "GERMANY"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.fractionated_morse",
"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
An empty key or a key with no Latin letters fails immediately with invalid_input, because the alphabet cannot be built without at least one alphabetic character.
How Fractionated Morse maps Morse trigrams through a keyword
There is no random pad, no clock, and no network call—identical text, key, and mode always yield identical JSON. This landing implements classical unbounded Fractionated Morse only, not plain Morse encode/decode without a keyword, not Bifid or Trifid Polybius fractionation, and not automatic recovery of unknown keys.
What you send and what you get back
Send a required string field named text, a required string field named key, and an optional mode field set to encrypt or decrypt. On encrypt, text must contain at least one Latin letter after non-letters are skipped; whitespace runs become word separators in the intermediate Morse stream. Classic checks include encrypting a multi-word phrase with key GERMANY to a stable letter string, decrypting that ciphertext with the same key back to the original words, confirming HELLO with key SECRET round-trips, and confirming that an empty key is rejected rather than inventing a default alphabet. When mode is omitted, encrypt is the default so a minimal payload still produces ciphertext. The key must contain at least one Latin letter after reading A–Z and a–z; an empty string, whitespace-only key, or key made only of digits and punctuation fails with invalid_input and a message that names the empty-key rule. On success the response echoes mode, text, and key, returns result as the transformed string, length of that result, letters_mapped as how many plaintext letters participated on encrypt or how many Morse letters were recovered on decrypt, alphabet as the twenty-six-character keyed order used for the run, morse_stream as the intermediate dotted stream with x separators, and cipher set to fractionated_morse for clients that assert the profile they hit. Missing text, missing key, non-string objects for those fields, unsupported mode values, strings longer than the documented maximum, encrypt payloads with no letters, and decrypt payloads with no letters all fail with invalid_input and a clear English message. Validation failures do not consume prepaid balance. Pricing for successful API calls is the published base of $0.002 per item.
Where Fractionated Morse tools show up in real work
Because this capability is a pure parse engine, API pricing is the published base of $0.002 per successful item and failed validation does not consume balance.
Integration use cases
Lightweight keyword-based label encoding
Turn quiz answers or internal labels into Fractionated Morse letter streams and decode them later with the same key in browser or API.