encrypt and decrypt a string in c code example

Example: c how to encrypt and decrypt

#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);
}

Tags:

C Example