(*Questi sono i codici ottenuti dai 4 esperimenti*) esp1 = "Nico"; esp2 = "M46"; esp3 = "DESB"; esp4 = "PHVF"; (*Ora ricostruiamo la stringa e formiamo così la key*) key = Characters[StringJoin[esp1, esp2, esp3, esp4]]; (*Questa è la password crittata contenuta nel codice QR*) codiceqr = Characters["ESILITOSTIPOSTI"]; (*Trasformiamo le due stringhe in un codice numerico (Unicode)*) codekey = Flatten[Table[ToCharacterCode[key[[k]]], {k, Length[key]}]]; codecodiceqr = Flatten[Table[ ToCharacterCode[codiceqr[[k]]], {k, Length[codiceqr]}]]; (*Ora scriviamo l'algoritomo di crittazione: i codici Unicode della key e \ della stringa QR, vengono sommati tra loro in modo invertito S(il \ primo della key con l'ultimo della stringa QR, il secondo della key \ con il penultimo della stringa QR, etc.). I risultati sono poi \ moltiplicati tra loro*) prod = 1; Do[ prod = prod*(codekey[[k]] + codecodiceqr[[Length[codecodiceqr] - k + 1]]) , {k, Length[key]}] (*La password decrittata sarà il risultato espresso in una base a 36 cifre*) BaseForm[prod, 36]