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 -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}'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!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 $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.
| Feld | Bedeutung |
|---|---|
textPflichtfeld | Der Text, bis zu 10.000 Zeichen. |
shiftPflichtfeld | 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. |
{ "text": "Hello World!", "shift": 3}{ "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.
| Feld | Bedeutung |
|---|---|
textPflichtfeld | Der Text, bis zu 10.000 Zeichen. |
shiftPflichtfeld | 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. |
{ "text": "Khoor Zruog!", "shift": 3}{ "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.
| Feld | Bedeutung |
|---|---|
textPflichtfeld | 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. |
{ "text": "Wkh txlfn eurzq ira mxpsv ryhu wkh odcb grj", "language": "en"}{ "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.
| Feld | Bedeutung |
|---|---|
methodPflichtfeld | encrypt, decrypt oder solve. |
itemsPflichtfeld | 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. |
{ "method": "encrypt", "items": [ { "text": "Hello", "shift": 3 }, { "text": "World", "shift": 5 } ]}{ "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.
{ "text": "Schöne Grüße", "shift": 3, "alphabet": "german"}{ "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.
| Feld | Bedeutung |
|---|---|
textPflichtfeld | 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. |
{ "text": "Hello World!"}{ "success": true, "result": "Uryyb Jbeyq!", "method": "rot13", "text_length": 12}POST /rot13/bulk
Wendet ROT13 auf bis zu 100 Texte in einer Anfrage an.
| Feld | Bedeutung |
|---|---|
itemsPflichtfeld | 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. |
{ "items": [ "Hello", "World" ]}{ "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.
| Feld | Bedeutung |
|---|---|
textPflichtfeld | Der Text, bis zu 10.000 Zeichen. |
keyPflichtfeld | 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. |
{ "text": "Hello World!", "key": "KEY"}{ "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.
| Feld | Bedeutung |
|---|---|
textPflichtfeld | Der Text, bis zu 10.000 Zeichen. |
keyPflichtfeld | 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. |
{ "text": "Rijvs Uyvjn!", "key": "KEY"}{ "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.
| Feld | Bedeutung |
|---|---|
textPflichtfeld | 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. |
{ "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"}{ "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.
| Feld | Bedeutung |
|---|---|
methodPflichtfeld | encrypt oder decrypt. |
itemsPflichtfeld | Bis zu 100 Objekte, jedes mit text (bis zu 1.000 Zeichen) und key. |
{ "method": "encrypt", "items": [ { "text": "Hello", "key": "KEY" }, { "text": "World", "key": "LEMON" } ]}{ "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.
| Status | Bedeutung |
|---|---|
200 | Die Anfrage war erfolgreich. |
400 | Die 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. |
422 | Ein Feld fehlt oder ist ungültig. |
429 | Zu viele Anfragen. Warte die in Retry-After genannte Anzahl Sekunden. |
{ "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.