Cifrario ROT18
Hello, World! 123 diventa Uryyb, Jbeyq! 678 in un solo passaggio: le lettere avanzano di 13 posizioni e le cifre di cinque, mentre spazi e segni restano fermi. Ripeta l'operazione e torna l'originale. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Testo
- Hello, World! 123
- Risultato
- Uryyb, Jbeyq! 678
- Lunghezza
- 17
- Lettere ruotate
- 10
- Cifre ruotate
- 3
ROT18 è il cifrario di rotazione combinato che applica ROT13 a ogni lettera latina e ROT5 a ogni cifra decimale in un solo passaggio. Le lettere da A a Z e da a a z avanzano di tredici posti nell'alfabeto, così Hello diventa Uryyb, mentre le cifre da zero a nove avanzano di cinque posti e 123 diventa 678. Spazi, punteggiatura e altri caratteri restano dove sono, il che conserva una struttura leggibile per stringhe di enigmi ed etichette leggere. Poiché tredici è la metà di ventisei e cinque la metà di dieci, applicare ROT18 una seconda volta annulla la prima: la stessa operazione codifica e decodifica. Incolli qualsiasi stringa non vuota e riceva all'istante il risultato trasformato.
Come ROT18 combina ROT13 sulle lettere e ROT5 sulle cifre
ROT18 non è un alfabeto separato; è il prodotto di due rotazioni classiche a mezzo anello applicate carattere per carattere. Per ogni lettera latina l'algoritmo mappa il carattere a un indice da zero a venticinque nella sua cassa, aggiunge tredici, prende il resto modulo ventisei e rimappa a una lettera della stessa cassa. È il ROT13 classico: A diventa N, N diventa A, Hello diventa Uryyb e Uryyb torna Hello.
Per ogni cifra ASCII l'algoritmo mappa zero-nove a un indice, aggiunge cinque, prende il resto modulo dieci e rimappa: zero diventa cinque, cinque diventa zero, uno due tre diventa sei sette otto. I caratteri fuori da questi due insiemi—spazi, virgole, emoji, lettere accentate fuori dal blocco latino di base—sono copiati invariati così le frasi mantengono la forma.
La trasformazione combinata è un'involuzione: poiché tredici più tredici fa ventisei e cinque più cinque fa dieci, ogni lettera e ogni cifra torna a sé dopo due applicazioni, quindi codifica e decodifica sono la stessa chiamata. Non c'è chiave da scegliere, né flag di modalità, né passo a virgola mobile. Ogni passo è aritmetica modulare intera con regola fissa, del tutto deterministica, senza chiamata di rete, senza seme casuale e senza timestamp di orologio nel percorso.
Questa pagina implementa solo quel profilo ROT18 fisso—non uno scorrimento Cesare variabile, non Vigenère, non AES e non un cracker a forza bruta. Quelli sono strumenti e intenti di ricerca separati.
Cosa invia e cosa riceve indietro
Invii un campo stringa obbligatorio chiamato text con il messaggio da trasformare. I fallimenti di validazione non consumano saldo prepagato. I controlli classici includono trasformare Hello, World!
123 in Uryyb, Jbeyq! 678, applicare di nuovo la stessa trasformazione per recuperare l'originale e confermare che un campo text vuoto è rifiutato anziché restituito invariato.
Dove compaiono gli strumenti ROT18 nel lavoro reale
I corsi introduttivi di crittografia e programmazione spesso presentano prima ROT13 e poi chiedono di estendere l'idea alle cifre; un unico oracolo ROT18 affidabile accelera demo di compiti e auto-valutatori che necessitano rotazione di lettere e cifre. I riscaldamenti capture-the-flag e le cacce agli enigmi nascondono ancora messaggi in stile ROT che mescolano parole e numeri in chiaro, e chi risolve vuole una trasformazione rapida e prevedibile piuttosto che una suite generale di crittoanalisi.
I team di supporto e contenuti a volte offuscano leggermente spoiler, risposte di quiz, etichette dall'aspetto di serie o codici di ticket interni che mescolano lettere e cifre e necessitano del percorso inverso senza installare una libreria specifica del linguaggio. Se Le serve uno scorrimento Cesare intero variabile, cifratura autenticata forte, codifica Base32 o Base64, o recupero automatico di chiave per analisi di frequenza, li tratti come intenti di ricerca e landing separati piuttosto che sovraccaricare questa pagina ROT18 fissa.
Casi d'uso
Demo di classe ROT13 più cifre
Mostri agli studenti come si combinano le rotazioni a mezzo alfabeto e a mezzo digito, con una trasformazione di riferimento per lettere e numeri insieme.
Stringhe alfanumeriche miste in enigmi e CTF
Codifichi o inverta stringhe di sfida che mescolano parole e cifre senza scrivere uno script ad hoc per ogni insieme di problemi.
Domande frequenti
Che cos'è ROT18?
Un cifrario di rotazione combinato: ROT13 su lettere latine A–Z/a–z e ROT5 su cifre 0–9. I caratteri non alfanumerici restano invariati. Applicarlo due volte recupera il testo originale.
Come si decodifica ROT18?
Applichi di nuovo la stessa trasformazione. ROT18 è autoinversa perché 13+13=26 e 5+5=10, quindi codifica e decodifica sono identiche.
Cosa succede con ingresso vuoto?
Deve fornire una stringa text non vuota; l'ingresso vuoto è rifiutato e non addebitato.
Spazi e punteggiatura vengono trasformati?
No. Solo A–Z, a–z e le cifre 0–9 sono ruotati. Spazi, punteggiatura e altri caratteri passano invariati.
Quanto costa?
Lo strumento del browser è gratuito e gira in locale.
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/enc/rot18 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello, World! 123"}'const res = await fetch("https://api.kit.forhosting.com/enc/rot18", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello, World! 123"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/rot18",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello, World! 123"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/rot18", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello, World! 123"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello, World! 123"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/rot18", 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! 123"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.rot18",
"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.
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
L'ingresso vuoto è rifiutato con un errore chiaro invalid_input così gli script non trattano mai in silenzio un campo vuoto come un no-op.
Cosa invia e cosa riceve indietro
Alias come input, value, data, message, plaintext e ciphertext sono accettati per lo stesso campo così gli script possono riutilizzare forme di payload esistenti. In caso di successo la risposta riecheggia il text originale, restituisce result come la stringa ROT18, length di quel risultato, letters_rotated e digits_rotated come conteggi di quanti caratteri alfabetici e numerici sono stati ruotati, più etichette alphabet, cipher e self_inverse affinché i client possano affermare di aver colpito il profilo ROT18. Text mancante, oggetti non stringa per text, stringhe vuote e stringhe più lunghe del massimo documentato falliscono con invalid_input e un messaggio chiaro in inglese. Il prezzo delle chiamate API riuscite è la base pubblicata di $0.002 per elemento.
Dove compaiono gli strumenti ROT18 nel lavoro reale
Poiché questa capacità è un motore parse puro, il prezzo API è la base pubblicata di $0.002 per elemento riuscito e la validazione fallita non consuma saldo.
Casi di integrazione
Offuscamento leggero di spoiler ed etichette
Ruoti risposte di quiz o etichette stile ticket con lettere e cifre, poi le recuperi con la stessa chiamata nel browser o nell'API.