Langsung ke konten

API Sandi Caesar

Endpoint JSON gratis untuk sandi Caesar, ROT13, dan Vigenère, tanpa kunci atau pendaftaran. Pilih salah satu dan kirim permintaan sungguhan dari sini.

iklan

Memulai

Anda tidak memerlukan kunci atau akun. Setiap operasi adalah permintaan POST dengan isi JSON, dikirim ke alamat yang diawali dengan:

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

Kirim kedua header: Content-Type: application/json dan Accept: application/json. Tanpa header kedua, galat validasi akan mengalihkan Anda alih-alih mengembalikan JSON. Contoh Python memerlukan 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!

Sandi Caesar

Enkripsi, dekripsi, atau pecahkan sandi Caesar. Untuk melihat cara kerja sandinya, coba alat sandi Caesar.

POST /caesar/encrypt

Menggeser setiap huruf ke depan.

KolomArti
text
wajib
Teksnya, hingga 10.000 karakter.
shift
wajib
Bilangan bulat dari -25 sampai 25.
alphabet basic (bawaan), polish, german, spanish, french, atau custom.
custom_alphabet Karakter Anda sendiri, hingga 100. Wajib jika alphabet bernilai custom.
preserve_case Mempertahankan huruf kecil. Bawaan true; dengan false hasilnya huruf besar.
preserve_non_alpha Mempertahankan karakter di luar alfabet. Bawaan true; dengan false karakter itu dihapus.
Permintaan
{    "text": "Hello World!",    "shift": 3}
Respons
{    "success": true,    "result": "Khoor Zruog!",    "method": "encrypt",    "shift": 3,    "alphabet": "basic",    "text_length": 12}

POST /caesar/decrypt

Menggeser setiap huruf ke belakang. Berikan pergeseran yang sama dengan saat enkripsi.

KolomArti
text
wajib
Teksnya, hingga 10.000 karakter.
shift
wajib
Bilangan bulat dari -25 sampai 25.
alphabet basic (bawaan), polish, german, spanish, french, atau custom.
custom_alphabet Karakter Anda sendiri, hingga 100. Wajib jika alphabet bernilai custom.
preserve_case Mempertahankan huruf kecil. Bawaan true; dengan false hasilnya huruf besar.
preserve_non_alpha Mempertahankan karakter di luar alfabet. Bawaan true; dengan false karakter itu dihapus.
Permintaan
{    "text": "Khoor Zruog!",    "shift": 3}
Respons
{    "success": true,    "result": "Hello World!",    "method": "decrypt",    "shift": 3,    "alphabet": "basic",    "text_length": 12}

POST /caesar/solve

Mencoba semua pergeseran dan menilai hasilnya berdasarkan frekuensi huruf, tanpa kunci. Teks dikembalikan dalam huruf besar. confidence adalah nilai, bukan peluang, dan teks pendek bisa mengecohnya, jadi lihat juga all_solutions yang berisi lima hasil terbaik.

KolomArti
text
wajib
Teksnya, hingga 10.000 karakter.
alphabet Seperti di atas, tetapi tanpa custom.
language Bahasa untuk penilaian frekuensi: en (bawaan), pl, de, es, atau fr.
Permintaan
{    "text": "Wkh txlfn eurzq ira mxpsv ryhu wkh odcb grj",    "language": "en"}
Respons
{    "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

Memproses hingga 100 teks dalam satu permintaan. Dengan solve, penilaian selalu memakai frekuensi huruf bahasa Inggris.

KolomArti
method
wajib
encrypt, decrypt, atau solve.
items
wajib
Hingga 100 objek, masing-masing dengan text (hingga 1.000 karakter) dan shift (bawaan 3).
alphabet basic (bawaan), polish, german, spanish, french, atau custom.
custom_alphabet Karakter Anda sendiri, hingga 100. Wajib jika alphabet bernilai custom.
Permintaan
{    "method": "encrypt",    "items": [        {            "text": "Hello",            "shift": 3        },        {            "text": "World",            "shift": 5        }    ]}
Respons
{    "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        }    ]}

Alfabet lain

Alfabet bernama sama dengan yang ada di alat kami. Bahasa Indonesia memakai 26 huruf basic, jadi Anda tidak perlu mengubah apa pun untuk teks biasa. Untuk himpunan karakter lain, pakai custom. Contoh ini juga menggeser angka:

Permintaan
{    "text": "Kamar 101",    "shift": 3,    "alphabet": "custom",    "custom_alphabet": "abcdefghijklmnopqrstuvwxyz0123456789"}
Respons
{    "success": true,    "result": "Ndpdu 434",    "method": "encrypt",    "shift": 3,    "alphabet": "custom",    "text_length": 9}

ROT13

ROT13 tidak memakai kunci, dan panggilan yang sama dipakai untuk enkripsi dan dekripsi. Hanya huruf A sampai Z yang berubah.

POST /rot13/transform

Menerapkan ROT13 pada satu teks.

KolomArti
text
wajib
Teksnya, hingga 10.000 karakter.
preserve_case Mempertahankan huruf kecil. Bawaan true; dengan false hasilnya huruf besar.
preserve_non_alpha Mempertahankan karakter di luar alfabet. Bawaan true; dengan false karakter itu dihapus.
Permintaan
{    "text": "Hello World!"}
Respons
{    "success": true,    "result": "Uryyb Jbeyq!",    "method": "rot13",    "text_length": 12}

POST /rot13/bulk

Menerapkan ROT13 pada hingga 100 teks dalam satu permintaan.

KolomArti
items
wajib
Hingga 100 teks, masing-masing hingga 1.000 karakter.
preserve_case Mempertahankan huruf kecil. Bawaan true; dengan false hasilnya huruf besar.
preserve_non_alpha Mempertahankan karakter di luar alfabet. Bawaan true; dengan false karakter itu dihapus.
Permintaan
{    "items": [        "Hello",        "World"    ]}
Respons
{    "success": true,    "method": "rot13",    "count": 2,    "results": [        {            "index": 0,            "original": "Hello",            "result": "Uryyb"        },        {            "index": 1,            "original": "World",            "result": "Jbeyq"        }    ]}

Sandi Vigenère

Kunci hanya boleh berisi huruf A sampai Z. Huruf beraksen dalam teks tidak berubah dan tidak memakai huruf kunci. Anda juga bisa melihat cara kerjanya di alat Vigenère.

POST /vigenere/encrypt

Menggeser setiap huruf sesuai huruf kunci berikutnya.

KolomArti
text
wajib
Teksnya, hingga 10.000 karakter.
key
wajib
Kata kunci, hingga 100 huruf A sampai Z.
preserve_case Mempertahankan huruf kecil. Bawaan true; dengan false hasilnya huruf besar.
preserve_non_alpha Mempertahankan karakter di luar alfabet. Bawaan true; dengan false karakter itu dihapus.
Permintaan
{    "text": "Hello World!",    "key": "KEY"}
Respons
{    "success": true,    "result": "Rijvs Uyvjn!",    "method": "encrypt",    "key_length": 3,    "text_length": 12}

POST /vigenere/decrypt

Membalik enkripsi dengan kunci yang sama.

KolomArti
text
wajib
Teksnya, hingga 10.000 karakter.
key
wajib
Kata kunci, hingga 100 huruf A sampai Z.
preserve_case Mempertahankan huruf kecil. Bawaan true; dengan false hasilnya huruf besar.
preserve_non_alpha Mempertahankan karakter di luar alfabet. Bawaan true; dengan false karakter itu dihapus.
Permintaan
{    "text": "Rijvs Uyvjn!",    "key": "KEY"}
Respons
{    "success": true,    "result": "Hello World!",    "method": "decrypt",    "key_length": 3,    "text_length": 12}

POST /vigenere/analyze

Menemukan kunci dari statistik huruf dalam teks, yang harus berisi minimal 20 huruf. Makin panjang makin baik: dalam pengujian kami pada bahasa Inggris, Polandia, Jerman, Spanyol, dan Prancis, kunci benar pada 96 sampai 100 persen percobaan dengan 400 karakter, dan hanya 8 sampai 58 persen dengan 80 karakter. Belum ada profil bahasa Indonesia, jadi hasil untuk teks Indonesia kurang pasti. Periksa decrypted_preview untuk melihat apakah hasilnya terbaca sebagai teks sungguhan.

KolomArti
text
wajib
Teksnya, hingga 10.000 karakter.
max_key_length Kunci terpanjang yang dicari, dari 1 sampai 20. Bawaan 10.
language Bahasa untuk penilaian frekuensi: en (bawaan), pl, de, es, atau fr.
Permintaan
{    "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"}
Respons
{    "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

Mengenkripsi atau mendekripsi hingga 100 teks dalam satu permintaan, masing-masing dengan kuncinya sendiri.

KolomArti
method
wajib
encrypt atau decrypt.
items
wajib
Hingga 100 objek, masing-masing dengan text (hingga 1.000 karakter) dan key.
Permintaan
{    "method": "encrypt",    "items": [        {            "text": "Hello",            "key": "KEY"        },        {            "text": "World",            "key": "LEMON"        }    ]}
Respons
{    "success": true,    "method": "encrypt",    "count": 2,    "results": [        {            "index": 0,            "original": "Hello",            "result": "Rijvs",            "key": "KEY"        },        {            "index": 1,            "original": "World",            "result": "Hsdzq",            "key": "LEMON"        }    ]}

Galat

Status HTTP memberi tahu apa yang terjadi. Galat validasi juga menyebutkan setiap kolom yang salah.

StatusArti
200Permintaan berhasil.
400Data lolos validasi tetapi tidak bisa dipakai, misalnya alfabet sendiri yang kurang dari 2 karakter atau teks yang terlalu pendek untuk dianalisis.
422Ada kolom yang hilang atau tidak valid.
429Terlalu banyak permintaan. Tunggu sesuai jumlah detik pada Retry-After.
422
{    "message": "The text field is required.",    "errors": {        "text": [            "The text field is required."        ]    }}

Batas permintaan

Setiap alamat IP bisa mengirim 60 permintaan per menit, termasuk yang dikirim dari halaman ini. Respons memuat X-RateLimit-Limit dan X-RateLimit-Remaining. Jika melewati batas, Anda menerima status 429 dengan Retry-After dan X-RateLimit-Reset.

API menerima permintaan dari situs web mana pun, jadi Anda bisa memanggilnya langsung dari kode di browser. Jika memerlukan batas lebih tinggi, hubungi kami.

Pertanyaan yang sering diajukan

Apakah saya perlu kunci API?

Tidak. API ini gratis dan tidak memerlukan kunci atau akun. Hanya berlaku batas 60 permintaan per menit.

Bisakah ini melindungi data sungguhan?

Tidak. Sandi ini untuk belajar dan teka-teki, dan bisa dipecahkan dalam hitungan detik. Teks Anda juga dikirim ke server kami untuk diproses, jadi jangan kirim hal yang bersifat pribadi.

API atau pustaka?

API bisa dipakai dari bahasa apa pun dan juga mencakup ROT13 dan Vigenère. Di JavaScript dan TypeScript, pustaka caesar-cipher-js menghitung sandi Caesar secara lokal, tanpa permintaan atau batas. Untuk menulis kodenya sendiri, ikuti tutorial Python atau JavaScript.