Zum Inhalt springen

API für die Caesar-Verschlüsselung

Kostenlose JSON-Endpunkte für Caesar, ROT13 und Vigenère, ohne Schlüssel und Anmeldung. Wähle einen aus und sende gleich hier eine echte Anfrage.

Werbung

Erste Schritte

Du brauchst weder Schlüssel noch Konto. Jede Operation ist eine POST-Anfrage mit JSON-Body an eine Adresse, die so beginnt:

https://caesar-cipher.com/api/v1

Sende beide Header: Content-Type: application/json und Accept: application/json. Ohne den zweiten führt ein Validierungsfehler zu einer Weiterleitung statt zu einer JSON-Antwort. Das Python-Beispiel braucht das Paket requests.

curl
curl -X POST https://caesar-cipher.com/api/v1/caesar/encrypt \  -H "Content-Type: application/json" \  -H "Accept: application/json" \  -d '{"text": "Hello World!", "shift": 3}'
JavaScript
const response = await fetch("https://caesar-cipher.com/api/v1/caesar/encrypt", {    method: "POST",    headers: { "Content-Type": "application/json", Accept: "application/json" },    body: JSON.stringify({ text: "Hello World!", shift: 3 }),}); const data = await response.json();console.log(data.result);// Khoor Zruog!
Python
import requests response = requests.post(    "https://caesar-cipher.com/api/v1/caesar/encrypt",    json={"text": "Hello World!", "shift": 3},    headers={"Accept": "application/json"},)print(response.json()["result"])# Khoor Zruog!
PHP
<?php $context = stream_context_create(['http' => [    'method' => 'POST',    'header' => "Content-Type: application/json\r\nAccept: application/json\r\n",    'content' => json_encode(['text' => 'Hello World!', 'shift' => 3]),]]); $response = file_get_contents('https://caesar-cipher.com/api/v1/caesar/encrypt', false, $context);echo json_decode($response, true)['result'], "\n";// Khoor Zruog!

Caesar-Verschlüsselung

Verschlüsseln, entschlüsseln und automatisch knacken. Wie die Chiffre selbst arbeitet, zeigt das Caesar-Tool.

POST /caesar/encrypt

Verschiebt jeden Buchstaben nach vorn.

FeldBedeutung
text
Pflichtfeld
Der Text, bis zu 10.000 Zeichen.
shift
Pflichtfeld
Eine ganze Zahl von -25 bis 25.
alphabet basic (Standard), polish, german, spanish, french oder custom.
custom_alphabet Eigene Zeichen, bis zu 100. Pflicht, wenn alphabet den Wert custom hat.
preserve_case Kleinbuchstaben behalten. Standard true; bei false steht das Ergebnis in Großbuchstaben.
preserve_non_alpha Zeichen außerhalb des Alphabets behalten. Standard true; bei false werden sie entfernt.
Anfrage
{    "text": "Hello World!",    "shift": 3}
Antwort
{    "success": true,    "result": "Khoor Zruog!",    "method": "encrypt",    "shift": 3,    "alphabet": "basic",    "text_length": 12}

POST /caesar/decrypt

Verschiebt jeden Buchstaben zurück. Gib dieselbe Verschiebung an, die beim Verschlüsseln benutzt wurde.

FeldBedeutung
text
Pflichtfeld
Der Text, bis zu 10.000 Zeichen.
shift
Pflichtfeld
Eine ganze Zahl von -25 bis 25.
alphabet basic (Standard), polish, german, spanish, french oder custom.
custom_alphabet Eigene Zeichen, bis zu 100. Pflicht, wenn alphabet den Wert custom hat.
preserve_case Kleinbuchstaben behalten. Standard true; bei false steht das Ergebnis in Großbuchstaben.
preserve_non_alpha Zeichen außerhalb des Alphabets behalten. Standard true; bei false werden sie entfernt.
Anfrage
{    "text": "Khoor Zruog!",    "shift": 3}
Antwort
{    "success": true,    "result": "Hello World!",    "method": "decrypt",    "shift": 3,    "alphabet": "basic",    "text_length": 12}

POST /caesar/solve

Probiert alle Verschiebungen aus und bewertet die Ergebnisse nach Buchstabenhäufigkeit, ganz ohne Schlüssel. Der Text kommt in Großbuchstaben zurück. confidence ist eine Bewertung und keine Wahrscheinlichkeit, und kurze Texte können sie täuschen. Schau dir also auch all_solutions mit den fünf besten Ergebnissen an.

FeldBedeutung
text
Pflichtfeld
Der Text, bis zu 10.000 Zeichen.
alphabet Wie oben, aber ohne custom.
language Sprache für die Buchstabenhäufigkeit: en (Standard), pl, de, es oder fr.
Anfrage
{    "text": "Wkh txlfn eurzq ira mxpsv ryhu wkh odcb grj",    "language": "en"}
Antwort
{    "success": true,    "best_solution": {        "shift": 3,        "text": "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG",        "confidence": 96    },    "all_solutions": [        {            "shift": 3,            "text": "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG",            "score": 95.84        },        {            "shift": 13,            "text": "JXU GKYSA RHEMD VEN ZKCFI ELUH JXU BQPO TEW",            "score": 95.69        },        {            "shift": 14,            "text": "IWT FJXRZ QGDLC UDM YJBEH DKTG IWT APON SDV",            "score": 95.69        },        {            "shift": 19,            "text": "DRO AESMU LBYGX PYH TEWZC YFOB DRO VKJI NYQ",            "score": 95.26        },        {            "shift": 6,            "text": "QEB NRFZH YOLTK CLU GRJMP LSBO QEB IXWV ALD",            "score": 95.12        }    ],    "alphabet": "basic",    "language": "en"}

POST /caesar/bulk

Verarbeitet bis zu 100 Texte in einer Anfrage. Bei solve nutzt die Bewertung immer englische Buchstabenhäufigkeiten.

FeldBedeutung
method
Pflichtfeld
encrypt, decrypt oder solve.
items
Pflichtfeld
Bis zu 100 Objekte, jedes mit text (bis zu 1.000 Zeichen) und shift (Standard 3).
alphabet basic (Standard), polish, german, spanish, french oder custom.
custom_alphabet Eigene Zeichen, bis zu 100. Pflicht, wenn alphabet den Wert custom hat.
Anfrage
{    "method": "encrypt",    "items": [        {            "text": "Hello",            "shift": 3        },        {            "text": "World",            "shift": 5        }    ]}
Antwort
{    "success": true,    "method": "encrypt",    "alphabet": "basic",    "count": 2,    "results": [        {            "index": 0,            "original": "Hello",            "result": "Khoor",            "shift": 3        },        {            "index": 1,            "original": "World",            "result": "Btwqi",            "shift": 5        }    ]}

Umlaute und andere Alphabete

Die benannten Alphabete entsprechen unserem Tool, die Ergebnisse stimmen also überein. german hat 30 Zeichen mit Umlauten und ß. Für andere Zeichensätze ist custom da.

Anfrage
{    "text": "Schöne Grüße",    "shift": 3,    "alphabet": "german"}
Antwort
{    "success": true,    "result": "Üfkrph Juxbh",    "method": "encrypt",    "shift": 3,    "alphabet": "german",    "text_length": 15}

ROT13

ROT13 kommt ohne Schlüssel aus, und derselbe Aufruf ver- und entschlüsselt. Nur die Buchstaben A bis Z ändern sich.

POST /rot13/transform

Wendet ROT13 auf einen Text an.

FeldBedeutung
text
Pflichtfeld
Der Text, bis zu 10.000 Zeichen.
preserve_case Kleinbuchstaben behalten. Standard true; bei false steht das Ergebnis in Großbuchstaben.
preserve_non_alpha Zeichen außerhalb des Alphabets behalten. Standard true; bei false werden sie entfernt.
Anfrage
{    "text": "Hello World!"}
Antwort
{    "success": true,    "result": "Uryyb Jbeyq!",    "method": "rot13",    "text_length": 12}

POST /rot13/bulk

Wendet ROT13 auf bis zu 100 Texte in einer Anfrage an.

FeldBedeutung
items
Pflichtfeld
Bis zu 100 Texte mit je bis zu 1.000 Zeichen.
preserve_case Kleinbuchstaben behalten. Standard true; bei false steht das Ergebnis in Großbuchstaben.
preserve_non_alpha Zeichen außerhalb des Alphabets behalten. Standard true; bei false werden sie entfernt.
Anfrage
{    "items": [        "Hello",        "World"    ]}
Antwort
{    "success": true,    "method": "rot13",    "count": 2,    "results": [        {            "index": 0,            "original": "Hello",            "result": "Uryyb"        },        {            "index": 1,            "original": "World",            "result": "Jbeyq"        }    ]}

Vigenère-Chiffre

Der Schlüssel darf nur die Buchstaben A bis Z enthalten. Umlaute im Text bleiben unverändert und verbrauchen keinen Schlüsselbuchstaben. Die Arbeitsweise siehst du auch im Vigenère-Tool.

POST /vigenere/encrypt

Verschiebt jeden Buchstaben um den nächsten Buchstaben des Schlüssels.

FeldBedeutung
text
Pflichtfeld
Der Text, bis zu 10.000 Zeichen.
key
Pflichtfeld
Das Schlüsselwort, bis zu 100 Buchstaben von A bis Z.
preserve_case Kleinbuchstaben behalten. Standard true; bei false steht das Ergebnis in Großbuchstaben.
preserve_non_alpha Zeichen außerhalb des Alphabets behalten. Standard true; bei false werden sie entfernt.
Anfrage
{    "text": "Hello World!",    "key": "KEY"}
Antwort
{    "success": true,    "result": "Rijvs Uyvjn!",    "method": "encrypt",    "key_length": 3,    "text_length": 12}

POST /vigenere/decrypt

Macht die Verschlüsselung mit demselben Schlüssel rückgängig.

FeldBedeutung
text
Pflichtfeld
Der Text, bis zu 10.000 Zeichen.
key
Pflichtfeld
Das Schlüsselwort, bis zu 100 Buchstaben von A bis Z.
preserve_case Kleinbuchstaben behalten. Standard true; bei false steht das Ergebnis in Großbuchstaben.
preserve_non_alpha Zeichen außerhalb des Alphabets behalten. Standard true; bei false werden sie entfernt.
Anfrage
{    "text": "Rijvs Uyvjn!",    "key": "KEY"}
Antwort
{    "success": true,    "result": "Hello World!",    "method": "decrypt",    "key_length": 3,    "text_length": 12}

POST /vigenere/analyze

Findet den Schlüssel aus der Buchstabenstatistik des Textes, der mindestens 20 Buchstaben haben muss. Lange Texte funktionieren am besten: In unseren Tests auf Deutsch, Englisch, Polnisch, Spanisch und Französisch war der Schlüssel bei 400 Zeichen in 96 bis 100 Prozent der Versuche richtig, bei 80 Zeichen nur in 8 bis 58 Prozent. Wähle also die passende language und prüfe in decrypted_preview, ob das Ergebnis wie echter Text aussieht.

FeldBedeutung
text
Pflichtfeld
Der Text, bis zu 10.000 Zeichen.
max_key_length Der längste gesuchte Schlüssel, von 1 bis 20. Standard 10.
language Sprache für die Buchstabenhäufigkeit: en (Standard), pl, de, es oder fr.
Anfrage
{    "text": "Tx iof l fdwtsx ocyo qafatrs kupr fvr zpp hrlgtse hexyro mzhb elq qylwefbzq mbq hvahr l wubtwi xwap sz hup faoeo. Rapboc wbrh atog tx ysnyx, nsplyes rgidm ypxfse sep prpr yciph mzbyk fvr lpbvnmif pl l rgaopv ts epjggro xa hrwp fvrx. Lq ofvip hup wfiqprfg gz pacx qsd dnexqfad, xa qbfrf hup pqhgpve, oao xa hutrw oozyf kutgt kbche ocaimf zzwf cseiz wa zvpwalvk ketxubt.",    "language": "en"}
Antwort
{    "success": true,    "analysis": {        "probable_key_lengths": [            5,            2,            10        ],        "best_key_length": 5,        "ioc_scores": {            "10": 0.0739,            "5": 0.0724,            "6": 0.0464,            "7": 0.0462,            "9": 0.0447        },        "probable_key": "LEMON",        "decrypted_preview": "It was a bright cold morning when the old teacher walked into the classroom and wrote a single line "    },    "language": "en",    "text_length": 295}

POST /vigenere/bulk

Ver- oder entschlüsselt bis zu 100 Texte in einer Anfrage, jeden mit eigenem Schlüssel.

FeldBedeutung
method
Pflichtfeld
encrypt oder decrypt.
items
Pflichtfeld
Bis zu 100 Objekte, jedes mit text (bis zu 1.000 Zeichen) und key.
Anfrage
{    "method": "encrypt",    "items": [        {            "text": "Hello",            "key": "KEY"        },        {            "text": "World",            "key": "LEMON"        }    ]}
Antwort
{    "success": true,    "method": "encrypt",    "count": 2,    "results": [        {            "index": 0,            "original": "Hello",            "result": "Rijvs",            "key": "KEY"        },        {            "index": 1,            "original": "World",            "result": "Hsdzq",            "key": "LEMON"        }    ]}

Fehler

Der HTTP-Status sagt dir, was passiert ist. Ein Validierungsfehler nennt zusätzlich jedes ungültige Feld.

StatusBedeutung
200Die Anfrage war erfolgreich.
400Die Eingabe hat die Validierung bestanden, ist aber nicht nutzbar, etwa ein eigenes Alphabet mit weniger als 2 Zeichen oder ein zu kurzer Text für die Analyse.
422Ein Feld fehlt oder ist ungültig.
429Zu viele Anfragen. Warte die in Retry-After genannte Anzahl Sekunden.
422
{    "message": "The text field is required.",    "errors": {        "text": [            "The text field is required."        ]    }}

Limits

Jede IP-Adresse darf 60 Anfragen pro Minute senden, auch Anfragen von dieser Seite zählen mit. Antworten enthalten X-RateLimit-Limit und X-RateLimit-Remaining. Oberhalb des Limits bekommst du den Status 429 mit Retry-After und X-RateLimit-Reset.

Die API nimmt Anfragen von jeder Website an, du kannst sie also direkt aus Browser-Code aufrufen. Brauchst du ein höheres Limit, schreib uns.

Häufige Fragen

Brauche ich einen API-Schlüssel?

Nein. Die API ist kostenlos und braucht weder Schlüssel noch Konto. Es gilt nur das Limit von 60 Anfragen pro Minute.

Kann ich damit echte Daten schützen?

Nein. Diese Chiffren sind zum Lernen und für Rätsel gedacht und in Sekunden geknackt. Dein Text geht außerdem zur Verarbeitung an unseren Server, schick also nichts Privates.

API oder Bibliothek?

Die API funktioniert aus jeder Sprache und deckt auch ROT13 und Vigenère ab. In JavaScript und TypeScript rechnet die Bibliothek caesar-cipher-js die Caesar-Verschlüsselung lokal, ohne Anfragen und Limits. Möchtest du den Code selbst schreiben, folge dem Tutorial für Python oder JavaScript.