Dokumentasi API

advertisement

Dokumentasi API

Memulai

API RESTful komprehensif kami menyediakan akses terprogram yang mulus ke berbagai operasi sandi klasik, termasuk sandi Caesar, transformasi ROT13, dan sandi polialfabetik Vigenère. Dirancang khusus untuk tujuan pendidikan, API ini sepenuhnya gratis dan sempurna untuk pelajar, pendidik, pengembang, dan penggemar kriptografi. Baik Anda membangun aplikasi pendidikan, melakukan penelitian, atau sekadar menjelajahi dunia kriptografi historis yang menakjubkan, API kami menawarkan fungsionalitas yang kuat dengan kemampuan pemecahan otomatis yang cerdas serta dukungan untuk berbagai bahasa dan alfabet khusus.

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

Tipe Konten: application/json

Batas Permintaan: 60 permintaan/menit

Manfaat Utama

API kami menonjol dengan fokus pendidikannya, dokumentasi komprehensif, dan desain yang ramah pengembang. Semua endpoint mengembalikan respons terperinci dengan konteks edukatif, membuatnya sempurna untuk lingkungan pembelajaran. Analisis frekuensi bawaan dan kemampuan pemecahan sandi otomatis memberikan wawasan berharga tentang teknik kriptoanalisis.

🎓 Educational Focus

Designed specifically for learning environments with comprehensive educational context and examples.

🔍 Auto-Solving

Intelligent frequency analysis and automatic cipher-breaking capabilities for research and learning.

🌍 Multi-Language

Support for multiple alphabets including Polish, German, Spanish, French, and custom alphabets.

📚 Free & Open

Completely free for educational and research purposes with comprehensive documentation.

Caesar Cipher

Encrypt Text

POST /api/v1/caesar/encrypt

Badan Permintaan:

{
  "text": "Hello World",
  "shift": 3,
  "alphabet": "basic",  // optional: basic, polish, german, spanish, french, custom
  "custom_alphabet": "ABCDEFGHIJKLMNOPQRSTUVWXYZ",  // required if alphabet is "custom"
  "preserve_case": true,  // optional, default: true
  "preserve_non_alpha": true  // optional, default: true
}

Respon:

{
  "success": true,
  "result": "Khoor Zruog",
  "method": "encrypt",
  "shift": 3,
  "alphabet": "basic",
  "text_length": 11
}

Dekripsi Teks

POST /api/v1/caesar/decrypt

Badan Permintaan:

{
  "text": "Khoor Zruog",
  "shift": 3,
  "alphabet": "basic"
}

Respon:

{
  "success": true,
  "result": "Hello World",
  "method": "decrypt",
  "shift": 3,
  "alphabet": "basic",
  "text_length": 11
}

Pemecahan Otomatis Sandi Caesar

POST /api/v1/caesar/solve

Badan Permintaan:

{
  "text": "Khoor Zruog",
  "alphabet": "basic",  // optional
  "language": "en"  // optional: en, pl, de, es, fr
}

Respon:

{
  "success": true,
  "best_solution": {
    "shift": 3,
    "text": "Hello World",
    "confidence": 95
  },
  "all_solutions": [
    {"shift": 3, "text": "Hello World", "score": 95.2},
    {"shift": 7, "text": "Dahhk Sknhz", "score": 42.1},
    ...
  ],
  "alphabet": "basic",
  "language": "en"
}

Pemrosesan Massal

POST /api/v1/caesar/bulk

Badan Permintaan:

{
  "items": [
    {"text": "Hello", "shift": 3},
    {"text": "World", "shift": 5}
  ],
  "method": "encrypt",  // encrypt, decrypt, or solve
  "alphabet": "basic"
}

Respon:

{
  "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}
  ]
}

ROT13

Transformasi Teks

POST /api/v1/rot13/transform

Badan Permintaan:

{
  "text": "Hello World",
  "preserve_case": true,
  "preserve_non_alpha": true
}

Respon:

{
  "success": true,
  "result": "Uryyb Jbeyq",
  "method": "rot13",
  "text_length": 11
}

ROT13 Massal

POST /api/v1/rot13/bulk

Badan Permintaan:

{
  "items": ["Hello", "World", "ROT13"],
  "preserve_case": true
}

Respon:

{
  "success": true,
  "method": "rot13",
  "count": 3,
  "results": [
    {"index": 0, "original": "Hello", "result": "Uryyb"},
    {"index": 1, "original": "World", "result": "Jbeyq"},
    {"index": 2, "original": "ROT13", "result": "EBG13"}
  ]
}

Sandi Vigenère

Enkripsi dengan Vigenère

POST /api/v1/vigenere/encrypt

Badan Permintaan:

{
  "text": "Hello World",
  "key": "KEY",
  "preserve_case": true,
  "preserve_non_alpha": true
}

Respon:

{
  "success": true,
  "result": "Rijvs Uyvjn",
  "method": "encrypt",
  "key_length": 3,
  "text_length": 11
}

Analisis & Pecahkan Vigenère

POST /api/v1/vigenere/analyze

Badan Permintaan:

{
  "text": "RIJVS UYVJN RIJVS UYVJN...", // Long encrypted text
  "max_key_length": 10  // optional, default: 10
}

Respon:

{
  "success": true,
  "analysis": {
    "probable_key_lengths": [3, 6, 9],
    "best_key_length": 3,
    "ioc_scores": {"1": 0.043, "2": 0.045, "3": 0.065},
    "probable_key": "KEY",
    "decrypted_preview": "HELLO WORLD HELLO WORLD..."
  },
  "text_length": 100
}

Contoh Kode

JavaScript / Node.js

// Caesar Cipher Encryption
const response = await fetch('https://caesar-cipher.com/api/v1/caesar/encrypt', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    text: 'Hello World',
    shift: 3,
    alphabet: 'basic'
  })
});

const data = await response.json();
console.log(data.result); // "Khoor Zruog"

Python

import requests

# ROT13 Transform
response = requests.post('https://caesar-cipher.com/api/v1/rot13/transform',
    json={
        'text': 'Hello World',
        'preserve_case': True
    })

data = response.json()
print(data['result'])  # "Uryyb Jbeyq"

cURL

# Vigenère Cipher Encryption
curl -X POST https://caesar-cipher.com/api/v1/vigenere/encrypt \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Hello World",
    "key": "SECRET",
    "preserve_case": true
  }'

PHP

// Caesar Cipher Solver
$data = [
    'text' => 'Khoor Zruog',
    'alphabet' => 'basic',
    'language' => 'en'
];

$options = [
    'http' => [
        'header'  => "Content-type: application/json\r\n",
        'method'  => 'POST',
        'content' => json_encode($data)
    ]
];

$context  = stream_context_create($options);
$result = file_get_contents('https://caesar-cipher.com/api/v1/caesar/solve', false, $context);
$response = json_decode($result, true);

echo $response['best_solution']['text']; // "Hello World"

Penanganan Error

API menggunakan kode status HTTP standar dan mengembalikan pesan error JSON.

Kode Status Umum:

  • 200 OK - Request successful
  • 400 Bad Request - Invalid parameters
  • 422 Unprocessable Entity - Validation errors
  • 429 Too Many Requests - Rate limit exceeded
  • 500 Internal Server Error - Server error

Format Respon Error:

{
  "success": false,
  "error": "Validation error",
  "errors": {
    "text": ["The text field is required."],
    "shift": ["The shift must be between -25 and 25."]
  }
}

Pembatasan Permintaan

API dibatasi hingga 60 permintaan per menit per alamat IP. Informasi batas disertakan dalam header respon:

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58

# When rate limit is exceeded (HTTP 429):
{
  "error": "Too Many Requests",
  "message": "Rate limit exceeded. You can make up to 60 requests per minute.",
  "retry_after": 60,
  "documentation": "https://caesar-cipher.com/api-docs"
}

Untuk batas yang lebih tinggi atau penggunaan komersial, silakan gunakan formulir kontak di situs web kami.

Siap untuk Memulai?

Mulai jelajahi API kami hari ini! Uji endpoint secara langsung, integrasikan ke dalam aplikasi Anda, atau gunakan alat web interaktif kami untuk lebih memahami kriptografi klasik.