Da Wikipedia:
“Il cifrario di Cesare è uno dei più antichi algoritmi crittografici di cui si abbia traccia storica. È un cifrario a sostituzione monoalfabetica in cui ogni lettera del testo in chiaro è sostituita nel testo cifrato dalla lettera che si trova un certo numero di posizioni dopo nell’alfabeto. Questi tipi di cifrari sono detti anche cifrari a sostituzione o cifrari a scorrimento a causa del loro modo di operare: la sostituzione avviene lettera per lettera, scorrendo il testo dall’inizio alla fine.” … ” In particolare, Cesare utilizzava uno spostamento di 3 posizioni (la chiave era dunque 3” …
Ad esempio, applicando la chiave 3: 'a'
diventa 'd'
, 'b'
diventa 'e'
, 'c'
diventa 'f'
e via dicendo:
Carattere originale | 'a' |
'b' |
'c' |
'd' |
'e' |
… | 'x' |
'y' |
'z' |
---|---|---|---|---|---|---|---|---|---|
Codifica con chiave 3 | 'd' |
'e' |
'f' |
'g' |
'h' |
… | 'a' |
'b' |
'c' |
Applicando invece la chiave 5 'a'
diventa 'f'
, 'b'
diventa 'g'
… eccetera:
Carattere originale | 'a' |
'b' |
'c' |
'd' |
'e' |
… | 'x' |
'y' |
'z' |
---|---|---|---|---|---|---|---|---|---|
Codifica con chiave 5 | 'f' |
'g' |
'h' |
'i' |
'j' |
… | 'c' |
'd' |
'e' |
Scrivi la classe Java CifrarioDiCesare
che contenga due metodi utili rispettivamente per codificare e decodificare una stringa:
public static String codifica(String testo, int chiave)
public static String decodifica(String codice, int chiave)