Materiale per colloquio tecnico: Developer entry level
Esercizio: Crittografia per sostituzione
Scenario: Un nostro cliente, per un’esigenza interna, ci richiede di sviluppare una funziona che, prendendo
in ingresso una stringa, restituisca tale stringa crittografata attraverso l’algoritmo di crittografia per
sostituzione.
L’algoritmo richiesto prevede la presenza di due alfabeti, uno di partenza ordinato secondo lo standard
comune (ABCDEFGHIJKLMNOPQRSTUVWXYZ) ed uno ordinato in maniera casuale. Fornita una stringa in
ingresso a questa funzione, la crittografia avviene sostituendo a ciascuna lettera quella che, nell’alfabeto
disordinato, occupa la posizione della lettera nell’alfabeto ordinato.
Per questo esercizio, il secondo alfabeto è il seguente: “JZXTRSEHCYDBGIFKVUMANWQPLO”
Esempio: parola in ingresso “CANE”
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
J Z X T R S E H C Y D B G I F K V U M A N W Q P L O
La prima lettera, “C”, occupa la terza posizione. Nell’alfabeto disordinato la terza posizione è occupata dalla
“X”, per cui la C viene criptata con la X
La seconda lettera, “A”, occupa la prima posizione. Nell’alfabeto disordinato la prima posizione è occupata
dalla “J”, per cui la A viene criptata con la J.
Proseguendo, la parola CANE viene dunque criptata in “XJIR”
Regole:
Può essere utilizzato qualunque linguaggio si scelga per la risoluzione dell’esercizio. È ammesso consultare il
web per raccogliere spunti e suggerimenti, ma è seriamente sconsigliato copiare l’intero esercizio. Durante
il colloquio tecnico verrà discussa la soluzione proposta e verranno richieste delle modifiche per verificare
la comprensione del codice scritto.