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 -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!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.
| Kolom | Arti |
|---|---|
textwajib | Teksnya, hingga 10.000 karakter. |
shiftwajib | 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. |
{ "text": "Hello World!", "shift": 3}{ "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.
| Kolom | Arti |
|---|---|
textwajib | Teksnya, hingga 10.000 karakter. |
shiftwajib | 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. |
{ "text": "Khoor Zruog!", "shift": 3}{ "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.
| Kolom | Arti |
|---|---|
textwajib | Teksnya, hingga 10.000 karakter. |
alphabet | Seperti di atas, tetapi tanpa custom. |
language | Bahasa untuk penilaian frekuensi: en (bawaan), pl, de, es, atau 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
Memproses hingga 100 teks dalam satu permintaan. Dengan solve, penilaian selalu memakai frekuensi huruf bahasa Inggris.
| Kolom | Arti |
|---|---|
methodwajib | encrypt, decrypt, atau solve. |
itemswajib | 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. |
{ "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 } ]}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:
{ "text": "Kamar 101", "shift": 3, "alphabet": "custom", "custom_alphabet": "abcdefghijklmnopqrstuvwxyz0123456789"}{ "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.
| Kolom | Arti |
|---|---|
textwajib | 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. |
{ "text": "Hello World!"}{ "success": true, "result": "Uryyb Jbeyq!", "method": "rot13", "text_length": 12}POST /rot13/bulk
Menerapkan ROT13 pada hingga 100 teks dalam satu permintaan.
| Kolom | Arti |
|---|---|
itemswajib | 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. |
{ "items": [ "Hello", "World" ]}{ "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.
| Kolom | Arti |
|---|---|
textwajib | Teksnya, hingga 10.000 karakter. |
keywajib | 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. |
{ "text": "Hello World!", "key": "KEY"}{ "success": true, "result": "Rijvs Uyvjn!", "method": "encrypt", "key_length": 3, "text_length": 12}POST /vigenere/decrypt
Membalik enkripsi dengan kunci yang sama.
| Kolom | Arti |
|---|---|
textwajib | Teksnya, hingga 10.000 karakter. |
keywajib | 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. |
{ "text": "Rijvs Uyvjn!", "key": "KEY"}{ "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.
| Kolom | Arti |
|---|---|
textwajib | 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. |
{ "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
Mengenkripsi atau mendekripsi hingga 100 teks dalam satu permintaan, masing-masing dengan kuncinya sendiri.
| Kolom | Arti |
|---|---|
methodwajib | encrypt atau decrypt. |
itemswajib | Hingga 100 objek, masing-masing dengan text (hingga 1.000 karakter) dan 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" } ]}Galat
Status HTTP memberi tahu apa yang terjadi. Galat validasi juga menyebutkan setiap kolom yang salah.
| Status | Arti |
|---|---|
200 | Permintaan berhasil. |
400 | Data lolos validasi tetapi tidak bisa dipakai, misalnya alfabet sendiri yang kurang dari 2 karakter atau teks yang terlalu pendek untuk dianalisis. |
422 | Ada kolom yang hilang atau tidak valid. |
429 | Terlalu banyak permintaan. Tunggu sesuai jumlah detik pada Retry-After. |
{ "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.