Ciao a tutti!
Premetto che sono nuovo in questo ambito, programmo in java da quasi un anno, a scuola(ITIS).
Qualche giorno fa decisi di creare un programma che riesca a decifrare un semplice algoritmo di cifratura a sostituzione, ma ho molti problemi:
-non riesco a far funzionare l'algoritmo che crea due array , uno di caratteri(tutti diversi) e uno delle percentuali.
-l'algortimo di sostituzione dei caratteri nel messaggio mi pare sbagliato
So perfettamente che il codice decifrato non sarà mai esattamente uguale all'originale, ma penso che aggiungerò altri algoritmi per facilitare la decifratura ecc...
Questo è il link dell' algoritmo intero.
Premetto che sono nuovo in questo ambito, programmo in java da quasi un anno, a scuola(ITIS).
Qualche giorno fa decisi di creare un programma che riesca a decifrare un semplice algoritmo di cifratura a sostituzione, ma ho molti problemi:
-non riesco a far funzionare l'algoritmo che crea due array , uno di caratteri(tutti diversi) e uno delle percentuali.
Codice:
public void creaArrayDiCaratteriAndSimboli(){
int ricorrenza=0;
int l = 0;
boolean match=false;
for (int i = 0; i < messaggio.length(); i++) {
for (int j = 0; j < caratteri.length; j++) {
if (caratteri[j]==messaggio.charAt(i)) {
match=true;
ricorrenza++;
}
}
if (match=false){
caratteri[l]=messaggio.charAt(i);
percentuale[l]= ricorrenza*100/messaggio.length();
l++;
}
}
for (int i = 0; i < caratteri.length; i++) {
System.out.println(caratteri[i]);
}
}
Codice:
public void decodificaMessaggio(){
for (int i = 0; i < messaggio.length(); i++) {
for (int j = 0; j < caratteri.length; j++) {
if (messaggio.toCharArray()[i]==caratteri[j]){
switch(j){
case 0:
messaggio.toCharArray()[i]='E';
break;
case 1:
messaggio.toCharArray()[i]='A';
break;
case 2:
messaggio.toCharArray()[i]='I';
break;
case 3:
messaggio.toCharArray()[i]='O';
break;
case 4:
messaggio.toCharArray()[i]='N';
break;
case 5:
messaggio.toCharArray()[i]='L';
break;
case 6:
messaggio.toCharArray()[i]='R';
break;
case 7:
messaggio.toCharArray()[i]='T';
break;
case 8:
messaggio.toCharArray()[i]='S';
break;
case 9:
messaggio.toCharArray()[i]='C';
break;
case 10:
messaggio.toCharArray()[i]='D';
break;
case 11:
messaggio.toCharArray()[i]='P';
break;
case 12:
messaggio.toCharArray()[i]='U';
break;
case 13:
messaggio.toCharArray()[i]='M';
break;
case 14:
messaggio.toCharArray()[i]='V';
break;
case 15:
messaggio.toCharArray()[i]='G';
break;
case 16:
messaggio.toCharArray()[i]='H';
break;
case 17:
messaggio.toCharArray()[i]='F';
break;
case 18:
messaggio.toCharArray()[i]='B';
break;
case 19:
messaggio.toCharArray()[i]='Q';
break;
case 20:
messaggio.toCharArray()[i]='Z';
break;
}
}
}
}
}
So perfettamente che il codice decifrato non sarà mai esattamente uguale all'originale, ma penso che aggiungerò altri algoritmi per facilitare la decifratura ecc...
Questo è il link dell' algoritmo intero.