#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 100
int main() {
int switcho;
do
{
printf("Criptare random: 1\nCriptare avendo valore: 2\nDecriptare: 3\nSalvati: 4\n\nScegliere: ");
scanf("%d", &switcho);
printf("\n\n");
switch(switcho)
{
case 1:
printf("\n----------- RANDOM CRYPT -----------\n\n");
r_cripto();
break;
case 2:
printf("\n----------- NOT RANDOM CRYPT -----------\n\n");
cripto();
break;
case 3:
printf("\n----------- DECRYPT -----------\n\n");
decripto();
break;
case 4:
printf("\n----------- SALVATI -----------\n\n");
salvati();
break;
default:
printf("\n\nUSCITA PROGRAMMA");
break;
}
printf("\n\n----------------------------------------\n\n\n");
}while((switcho > 0) && (switcho < 5));
system("pause");
}
void cripto()
{
char a[N];
int i, n, b;
int fibo1, fibo2, fibo_save;
FILE * fp;
fp = fopen("Criptato con valore.txt","w");
srand(time(NULL));
printf("Inserire password: ");
scanf("%s", &a);
printf("Inserire valore: ");
scanf("%d", &b);
for(i = 0; i < b; i ++)
{
fibo_save = fibo1;
fibo1 = fibo2;
fibo2 = fibo2 + fibo_save;
}
fprintf(fp, "Password inserita: %s\nValore inserito: %d\n", a, b);
n = strlen(a);
for(i = n; i < (n * 2); i ++)
{
a[i] = 65;
}
printf("\n\nLa password e' la seguente:\n");
for(i = 0; i < n; i ++)
{
printf("%c", a[i]);
}
for(i = 0; i < (n * 2); i ++)
{
fibo_save = fibo1;
fibo1 = fibo2;
fibo2 = fibo2 + fibo_save;
a[i] = (int)a[i] + (fibo2 % 26);
}
printf("\n\nCriptata con valore %d:\n", b);
for(i = 0; i < (n * 2); i ++)
{
printf("%c", a[i]);
}
fprintf (fp, "\nPassword criptata: ");
for(i = 0; i < (n * 2); i ++)
{
fprintf(fp, "%c", a[i]);
}
fclose(fp);
}
void r_cripto()
{
char a[N];
int i, n, b;
int fibo1, fibo2, fibo_save;
FILE * fp;
fp = fopen ("Criptato random.txt","w");
srand(time(NULL));
b = rand() % 100 + 1;
for(i = 0; i < b; i ++)
{
fibo_save = fibo1;
fibo1 = fibo2;
fibo2 = fibo2 + fibo_save;
}
printf("Inserire password: ");
scanf("%s", &a);
fprintf(fp, "Password inserita: %s\nValore generato: %d\n", a, b);
n = strlen(a);
for(i = n; i < (n * 2); i ++)
{
a[i] = 65;
}
printf("\n\nLa password e' la seguente:\n");
for(i = 0; i < n; i ++)
{
printf("%c", a[i]);
}
for(i = 0; i < (n * 2); i ++)
{
fibo_save = fibo1;
fibo1 = fibo2;
fibo2 = fibo2 + fibo_save;
a[i] = (int)a[i] + (fibo2 % 26);
}
printf("\n\nCriptata con valore %d:\n", b);
for(i = 0; i < (n * 2); i ++)
{
printf("%c", a[i]);
}
fprintf (fp, "\nPassword criptata: ");
for(i = 0; i < (n * 2); i ++)
{
fprintf(fp, "%c", a[i]);
}
fclose(fp);
}
void decripto()
{
char a[N];
int i, n, b;
int fibo1, fibo2, fibo_save;
FILE * fp;
fp = fopen("Decriptato.txt","w");
printf("Inserire password: ");
scanf("%s", &a);
n = strlen(a);
printf("Inserire valore: ");
scanf("%d", &b);
fprintf(fp, "Password criptata inserita: %s\nValore inserito: %d\n", a, b);
for(i = 0; i < b; i ++)
{
fibo_save = fibo1;
fibo1 = fibo2;
fibo2 = fibo2 + fibo_save;
}
for(i = 0; i < (n / 2); i ++)
{
fibo_save = fibo1;
fibo1 = fibo2;
fibo2 = fibo2 + fibo_save;
a[i] = (int)a[i] - (fibo2 % 26);
}
printf("\n\nLa password e' la seguente:\n");
for(i = 0; i < (n / 2); i ++)
{
printf("%c", a[i]);
}
fprintf(fp, "\nPassword decriptata: ");
for(i = 0; i < (n / 2); i ++)
{
fprintf(fp, "%c", a[i]);
}
fclose(fp);
}
void salvati()
{
char con[N];
FILE * fp;
fp = fopen("Salvati.txt","r");
if (!fp)
fp = fopen("Salvati.txt","w");
while(fgets(con,1000, fp)!=NULL)
printf("%s", con);
if((strlen(con)) == 0)
printf("File vuoto");
fclose(fp);
}