Cifrario di Cesare e ROT13
Con ROT13, Hello, World! diventa Uryyb, Jbeyq!: ogni lettera avanza di 13 posizioni, le maiuscole restano maiuscole e la virgola, lo spazio e il punto esclamativo non si muovono. Scelga qualsiasi spostamento, positivo o negativo, e decodifichi con lo stesso numero. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Testo di partenza
- Hello, World!
- Risultato
- Uryyb, Jbeyq!
- Spostamento richiesto
- 13
- Spostamento effettivo
- 13
- Operazione
- Encode
Il cifrario di Cesare sposta le lettere di una quantità fissa; ROT13 è il caso di shift 13.
Come uno spostamento di Cesare muove ogni lettera
Il cifrario di Cesare sposta ogni lettera di un numero fisso di posizioni nell'alfabeto e, dopo la Z, ricomincia dalla A. Il ROT13 è il caso più noto, uno spostamento di 13, ed è il valore predefinito. Si muovono solo le lettere dalla A alla Z: le maiuscole ruotano tra le maiuscole e le minuscole tra le minuscole, così Hello, World! diventa Uryyb, Jbeyq! con la virgola, lo spazio e il punto esclamativo al loro posto. Anche cifre e altri segni restano invariati, e il messaggio conserva la sua forma.
Spostamenti, decodifica e ritorno all'originale
Va bene qualsiasi numero intero, anche negativo o maggiore di 25. Poiché l'alfabeto ha 26 lettere, uno spostamento di 26 non cambia nulla e uno di −1 equivale a 25; il risultato indica sempre la rotazione effettiva applicata. Decodificare significa ruotare le lettere nel senso opposto della stessa quantità, quindi codificare e poi decodificare con lo stesso spostamento restituisce sempre il testo originale. Per questo lo strumento è utile in classe, per provare in fretta degli spostamenti su un enigma o per nascondere leggermente uno spoiler o una risposta.
Le lettere ruotano; il resto resta
Si muovono solo le lettere ASCII. Spazi, cifre e punteggiatura restano. Maiuscole e minuscole si preservano in fasce separate.
Così i messaggi con virgole tengono la forma dopo la codifica, utile per demo e test andata-ritorno. Utile per esercitazioni in classe, puzzle CTF e test automatici di andata e ritorno senza ambiguità sul modulo 26.
Qualsiasi intero di shift
Default 13 (ROT13). Shift 26 è identità; −1 equivale a 25. Utile per esercitazioni in classe, puzzle CTF e test automatici di andata e ritorno senza ambiguità sul modulo 26.
Decode è la rotazione inversa
Decode applica −shift e riporta ancora lo shift originale. Encode poi decode con lo stesso shift ripristina il chiaro in modo deterministico.
Casi d'uso
ROT13 e lezioni
Mostra la sostituzione classica con uno shift e decode immediato.
CTF
Prova shift su crittogrammi senza float.
Mascherare testo
Nascondi leggermente spoiler dove bastano le lettere.
CI
Fissa andata e ritorno encode/decode.
Domande frequenti
Come funziona decode?
Rotazione −shift con gli stessi campi di shift.
Qual è lo spostamento predefinito?
Lo spostamento predefinito è 13, il classico ROT13. Con esso Hello, World! diventa Uryyb, Jbeyq!, e applicando di nuovo 13 si torna al testo originale, perché due giri da 13 coprono le 26 lettere dell'alfabeto.
Anche le cifre vengono spostate?
No. Si spostano solo le lettere dalla A alla Z; cifre, spazi e punteggiatura restano invariati. Maiuscole e minuscole ruotano ciascuna nel proprio alfabeto, quindi le maiuscole vengono mantenute.
Che cosa fa uno spostamento di 26 o di −1?
Uno spostamento di 26 riporta ogni lettera su sé stessa, quindi il testo non cambia. Uno di −1 equivale a 25. È accettato qualsiasi numero intero, e il risultato mostra lo spostamento effettivo, tra 0 e 25, applicato davvero.
Il ROT13 è un modo sicuro per nascondere un messaggio?
Solo in modo leggero. Il ROT13 nasconde uno spoiler o la soluzione di un enigma a uno sguardo veloce, ma chiunque può annullarlo applicando lo stesso spostamento. Serve per mascherare e per insegnare, non per proteggere informazioni private.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/text/caesar-cipher \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello, World!"}'const res = await fetch("https://api.kit.forhosting.com/text/caesar-cipher", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello, World!"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/caesar-cipher",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello, World!"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/caesar-cipher", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello, World!"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello, World!"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/caesar-cipher", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"text": "Hello, World!"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.caesar_cipher",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_text_chars | 100000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Questo strumento ruota solo A–Z e a–z, lascia cifre e punteggiatura, riporta lo shift effettivo modulo 26 e coincide tra browser gratis e API.
Qualsiasi intero di shift
Negativi e valori >25 ammessi; l'effettivo è ((shift % 26) + 26) % 26, restituito come shift_effective dallo shift di ingresso anche in decode.
Errori tipizzati e limiti
Testo obbligatorio, max 100000 caratteri. Shift non intero (float o booleano), mode non valido e testo assente danno invalid_input con sottostringhe stabili.
Domande tecniche
Shift predefinito?
13 — ROT13 classico.
Le cifre ruotano?
No; solo lettere.
Cos'è shift_effective?
Lo shift di ingresso ridotto a 0…25.
Shift negativo?
Sì; −1 ≡ 25.
Gratis?
Sì nel browser; app $0.002.