Documentation API

Documentation API

Commencer

Notre API RESTful complète offre un accès programmatique transparent à diverses opérations de chiffrement classique, notamment le chiffrement César, la transformation ROT13 et le chiffrement polyalphabetique Vigenère. Conçue spécifiquement à des fins éducatives, cette API est entièrement gratuite et parfaite pour les étudiants, les éducateurs, les développeurs et les passionnés de cryptographie. Que vous développiez des applications éducatives, meniez des recherches ou exploriez simplement le monde fascinant de la cryptographie historique, notre API offre une fonctionnalité robuste avec des capacités intelligentes de résolution automatique et un support pour plusieurs langues et alphabets personnalisés.

URL de base: https://caesar-cipher.com/api/v1

Type de contenu: application/json

Limite de requêtes: 60 requêtes/minute

Avantages Clés

Notre API se distingue par son orientation éducative, sa documentation complète et sa conception conviviale pour les développeurs. Tous les endpoints retournent des réponses détaillées avec un contexte éducatif, la rendant parfaite pour les environnements d'apprentissage. L'analyse de fréquence intégrée et les capacités automatiques de cassage de chiffrement fournissent des perspectives précieuses sur les techniques de cryptanalyse.

🎓 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

Corps de la requête:

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

Réponse:

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

Déchiffrer le texte

POST /api/v1/caesar/decrypt

Corps de la requête:

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

Réponse:

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

Résolution automatique du chiffrement César

POST /api/v1/caesar/solve

Corps de la requête:

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

Réponse:

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

Traitement en masse

POST /api/v1/caesar/bulk

Corps de la requête:

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

Réponse:

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

Transformer le texte

POST /api/v1/rot13/transform

Corps de la requête:

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

Réponse:

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

ROT13 en masse

POST /api/v1/rot13/bulk

Corps de la requête:

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

Réponse:

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

Chiffrement Vigenère

Chiffrer avec Vigenère

POST /api/v1/vigenere/encrypt

Corps de la requête:

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

Réponse:

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

Analyser et casser Vigenère

POST /api/v1/vigenere/analyze

Corps de la requête:

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

Réponse:

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

Exemples de code

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"

Gestion des erreurs

L'API utilise des codes d'état HTTP standard et renvoie des messages d'erreur JSON.

Codes d'état courants:

  • 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 de réponse d'erreur:

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

Limitation des requêtes

L'API est limitée à 60 requêtes par minute par adresse IP. Les informations de limite sont incluses dans les en-têtes de réponse:

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

Pour des limites plus élevées ou une utilisation commerciale, veuillez utiliser le formulaire de contact sur notre site Web.

Prêt à commencer ?

Commencez à explorer notre API dès aujourd'hui ! Testez les endpoints directement, intégrez-les dans vos applications ou utilisez nos outils web interactifs pour mieux comprendre la cryptographie classique.