ForHosting KIT · Strumenti per sviluppatori

Cifrario affine

Cifri o decifri con il cifrario affine, che moltiplica la posizione di ogni lettera per a e aggiunge b: con a pari a 5 e b pari a 8, AFFINE CIPHER diventa IHHWVC SWFRCP. Vede anche l'inverso di a, qui 21. Gratis nel suo browser.

  • Gratis
  • Funziona nel suo browser
  • Senza registrazione
  • I suoi dati restano sul dispositivo
Usalo da WebAPIEmailTelegramApp presto
Se inserisce
Testo
AFFINE CIPHER
A
5
B
8
Modalità di calcolo
Encrypt
Ottiene
Risultato
IHHWVC SWFRCP
A inversa
21
Lunghezza
13
Lettere trasformate
12

Il cifrario affine è una sostituzione monoalfabetica classica che trasforma la posizione x di ogni lettera con la formula lineare E(x)=(a·x+b) mod 26, dove a è un moltiplicatore coprimo con ventisei e b uno spostamento additivo. La decifratura moltiplica per l'inverso modulare di a, quindi ogni coppia di chiavi valida è completamente reversibile. A differenza di ROT13 o Atbash, entrambe le chiavi sono parametri liberi all'interno dell'insieme consentito, il che rende l'affine un passaggio didattico standard tra il cifrario di Cesare a spostamento fisso e i cifrari monoalfabetici completi con parola chiave. Viene usato per compiti di crittoanalisi, riscaldamenti CTF, libri di enigmi e dimostrazioni di aritmetica modulare in classe. Questa capacità accetta un testo non vuoto, chiavi intere a e b e una modalità opzionale di cifratura o decifratura; restituisce la stringa trasformata con l'inverso di a e un conteggio delle lettere.

Regole di validazione, chiavi coprime ed errori comuni

La regola decisiva del prodotto è che a deve essere coprimo con ventisei: gcd(a,26) deve essere uguale a uno perché esista un inverso modulare. I moltiplicatori validi sono uno, tre, cinque, sette, nove, undici, quindici, diciassette, diciannove, ventuno, ventitré e venticinque; i valori pari e i multipli di tredici condividono un fattore con ventisei e vengono rifiutati con un messaggio chiaro che a non è coprimo.

Non consideri l'output come cifratura per la riservatezza: lo spazio delle chiavi è minuscolo, l'analisi delle frequenze funziona ancora e la pagina del prodotto non deve mai presentare l'affine come controllo di sicurezza per password, token o dati personali. Preferisca questa pagina quando l'intento di ricerca è cifrario affine, cifratura e decifratura affine o cifrario monoalfabetico modulare; Atbash e ROT13 rispondono a intenti di corrispondenza fissa, il cifrario a staccionata alla trasposizione e Base64 alla codifica, quindi restano strumenti separati.

Per decifrare, usi gli stessi a e b che hanno prodotto il crittogramma; una coppia sbagliata produce una sostituzione diversa che non corrisponderà al testo originale.

Come usarlo in classe e i suoi limiti

Usi il cifrario affine gratuito nel browser per verificare compiti, diapositive di lezione, pratica CTF e cifrature o decifrature occasionali senza scrivere codice per l'inverso modulare in ogni linguaggio. Un flusso di lavoro tipico in classe mostra che il cifrario di Cesare è il caso particolare a uguale a uno, poi varia a nell'insieme dei coprimi e dimostra che i moltiplicatori pari rompono l'invertibilità. I manuali di supporto possono invertire note leggermente offuscate che il personale ha scritto con chiavi di classe note.

I siti di enigmi possono precalcolare le risposte per mostrarle e rivelarle su richiesta con mode decrypt. Lo combini con l'analisi delle frequenze o altri strumenti classici solo quando un passaggio didattico successivo richiede un'altra famiglia di cifrari — mantenga l'affine sulla propria pagina affinché l'intento SEO resti centrato sulla sostituzione modulare con chiave.

Compiti di crittoanalisi e riscaldamenti CTF

Gli studenti cifrano frasi brevi con a e b noti, poi decifrano i crittogrammi dei compagni o recuperano chiavi sotto vincoli senza installare un CAS.

Come cifro un testo con il cifrario affine?

Il campo result della risposta contiene il crittogramma.

Come decifro un crittogramma affine?

Invii il crittogramma come text, gli stessi a e b usati per cifrare e mode decrypt (o decode). Il risultato è il testo in chiaro ricostruito quando le chiavi corrispondono.

Cosa succede se a non è coprimo con 26?

La corrispondenza affine è biiettiva solo quando gcd(a,26)=1; i moltiplicatori pari e i multipli di 13 vengono rifiutati.

Lo strumento del cifrario affine è gratuito?

Lo strumento del browser viene eseguito gratis sul Suo dispositivo.

Il cifrario affine è una cifratura sicura?

No. L'affine è un cifrario monoalfabetico classico per enigmi e didattica, non per la riservatezza. Non lo usi mai per password o dati sensibili.

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.

POSThttps://api.kit.forhosting.com/enc/affine

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

curl -X POST https://api.kit.forhosting.com/enc/affine \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"AFFINE CIPHER","a":5,"b":8}'
{
  "text": "AFFINE CIPHER",
  "a": 5,
  "b": 8
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.affine",
  "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.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

Quando a condivide un fattore con ventisei, la richiesta fallisce con invalid_input perché la corrispondenza non sarebbe biiettiva.

Come funziona la corrispondenza affine e cosa contiene la risposta

La cifratura tratta ogni lettera latina come un numero da zero a venticinque, lo moltiplica per la chiave a, aggiunge la chiave b e riduce modulo ventisei prima di riscrivere la lettera con la capitalizzazione originale. Le maiuscole dalla A alla Z e le minuscole dalla a alla z usano gli stessi spostamenti, quindi le frasi con capitalizzazione mista mantengono la forma e cambia solo l'identità delle lettere. Cifre, spazi, punteggiatura, emoji e scritture non latine passano invariati, così i messaggi conservano spaziature e simboli. La modalità opzionale mode ha encrypt come valore predefinito; encrypt ed encode applicano la corrispondenza diretta, mentre decrypt e decode la invertono. La decifratura recupera il testo in chiaro calcolando un inverso modulare a_inv tale che a·a_inv ≡ 1 mod 26, e valutando poi D(y)=a_inv·(y−b) mod 26 per ogni lettera. Invii JSON con il campo stringa obbligatorio text contenente qualsiasi messaggio non vuoto, l'intero obbligatorio a tra uno e venticinque e coprimo con ventisei, e l'intero obbligatorio b tra zero e venticinque; gli alias input, value, s e message funzionano per il corpo, multiplier, key_a e alpha sono alias di a, mentre shift, key_b e beta sono alias di b. In caso di successo, la risposta include result con il testo trasformato, mode normalizzato a encrypt o decrypt, a e b che riportano le chiavi, a_inv con l'inverso usato per la decifratura, length pari al numero di caratteri dell'input, letters_transformed che conta quante lettere A–Z o a–z sono state effettivamente trasformate, e method uguale ad affine così i client possono diramare senza ispezionare la forma della risposta. Input identici producono sempre un JSON identico, perché il percorso è aritmetica modulare pura, senza rete, senza seme casuale e senza orologio.

Regole di validazione, chiavi coprime ed errori comuni

Un text mancante, non stringa o vuoto genera invalid_input e non viene addebitato sull'API prepagata dopo che il motore rifiuta la richiesta. La mancanza di a o b, chiavi non intere, a fuori dall'intervallo da uno a venticinque o b fuori dall'intervallo da zero a venticinque falliscono anch'essi con invalid_input. Spazi, cifre e punteggiatura non vengono eliminati: solo le lettere latine partecipano alla sostituzione, quindi le stringhe ricche di punteggiatura restituiscono comunque un risultato completo con un letters_transformed più basso.

Uso dell'API, prezzi, flussi di lavoro in classe e limiti pratici

Ricorra all'API prepagata di KIT quando un backend, una funzione serverless, una piattaforma di tutoraggio o un SDK ha bisogno di un contratto stabile con saldo a $0.002 per elemento elaborato con successo; i fallimenti di validazione non consumano mai saldo dopo il rifiuto. Chi pubblica SDK può collegare il campo result direttamente a un pulsante di copia, mentre a, b, a_inv e method rendono gli esempi OpenAPI autoesplicativi. Mantenga i payload a dimensioni di testo ragionevoli per una chiamata di elemento in un isolate di Worker; questo strumento è per messaggi e frammenti, non per blob binari di diversi megabyte.

Dimostrazioni di aritmetica modulare in classe

Gli insegnanti mostrano che solo i moltiplicatori coprimi sono invertibili, confrontano l'affine con Atbash o ROT13 e fissano a uguale a cinque e b uguale a otto come fixture da manuale.

Fixture di pipeline e CI

Script e test di integrazione continua fissano output affini deterministici e l'errore di a non coprimo, così bug accidentali di inverso o gcd falliscono subito.

Leggi la documentazione completa del KIT →