Salve!
Questo programma e' solo alla fase iniziale, ci ho messo poco a svilupparlo, conto di modificare ancora di piu' l'algoritmo per renderlo ancora più sicuro il testo.
Voglio generare tante parole quante la chiave ne ha , però il messaggio sarà nascosto in poche righe, cosi da rendere impossibile la decifrazione.
Devo ancora aggiungere l'input manuale, cosa che presto farò.
Comunque questo e' il programma.
Input
crypted
Questo programma e' solo alla fase iniziale, ci ho messo poco a svilupparlo, conto di modificare ancora di piu' l'algoritmo per renderlo ancora più sicuro il testo.
Voglio generare tante parole quante la chiave ne ha , però il messaggio sarà nascosto in poche righe, cosi da rendere impossibile la decifrazione.
Devo ancora aggiungere l'input manuale, cosa che presto farò.
Comunque questo e' il programma.
C:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//---------- Macro ----------//
#define N 5000
//--------- Prototipo --------//
void Key_Random(FILE *);
int Check_File(FILE *,FILE *);
void Crypter(FILE *,FILE *,FILE *);
void Decrypter(FILE *,FILE *,FILE *);
//--------- MAIN ------------//
int main()
{
//--------- Dichiarazione---------//
srand(time(0));
FILE *key,*crypted,*input,*decrypted;
int check=0;
//--------- Chiamata funzioni---------//
Key_Random(key);
check=Check_File(key,input);
//--------- Controllo chiusura -------//
if(check==404)
{
return 404;
}
//--------- Chiamata funzioni---------//
Crypter(key,input,crypted);
Decrypter(key,crypted,decrypted);
return 0;
}
//-------- Funzioni --------//
void Key_Random(FILE *key)
{
char reply;
int key_random;
//---------- Controllo key ----------//
printf("Vuoi generare una chiave di %d caratteri Y/N : ",N);
scanf("%c",&reply);
if((reply=='n')||(reply=='N'))
{
return ;
}
//---------- Generatore key --------//
key=fopen("key.txt","w");
for(int i=0;i<N;i++)
{
if((i%2)==0)
{
key_random=rand()%94;
key_random=key_random*(-1);
}
else
{
key_random=rand()%94;
}
fprintf(key,"%d\n",key_random);
}
printf("key.txt generato\n");
fclose(key);
return ;
}
int Check_File(FILE *key, FILE *input)
{
//---------- Controlla se i file sono presenti ---------//
if((key=fopen("key.txt","r"))==NULL)
{
printf("key.txt non trovato.");
return 404;
}
if((input=fopen("input.txt","r"))==NULL)
{
printf("input.txt non trovato.");
return 404;
}
fclose(key);
fclose(input);
return 0;
}
void Crypter(FILE *key,FILE *input,FILE *crypted)
{
key=fopen("key.txt","r");
input=fopen("input.txt","r");
crypted=fopen("crypted.txt","w");
//------ Imposta cursone a 0 ------//
fseek(key,0,SEEK_SET);
fseek(input,0,SEEK_SET);
fseek(crypted,0,SEEK_SET);
char key_x,input_x;
//------- Criptatore -------//
while(!feof(input))
{
fscanf(key,"%c",&key_x);
fscanf(input,"%c",&input_x);
input_x=input_x+key_x;
fprintf(crypted,"%c",input_x);
}
fclose(key);
fclose(input);
fclose(crypted);
printf("Testo cifrato.\n");
return;
}
void Decrypter(FILE *key,FILE *crypted,FILE *decrypted)
{
key=fopen("key.txt","r");
crypted=fopen("crypted.txt","r");
decrypted=fopen("decrypted.txt","w");
//------ Imposta cursone a 0 ------//
fseek(key,0,SEEK_SET);
fseek(crypted,0,SEEK_SET);
fseek(decrypted,0,SEEK_SET);
char key_x,crypted_x;
//------- Criptatore -------//
while(!feof(crypted))
{
fscanf(key,"%c",&key_x);
fscanf(crypted,"%c",&crypted_x);
crypted_x=crypted_x-key_x;
fprintf(decrypted,"%c",crypted_x);
}
fclose(key);
fclose(crypted);
fclose(decrypted);
printf("Testo decifrato.");
return;
}
Codice:
Che rottura di palle, i miei figli.
Codice:
pž™*¤¢~¡©|”Pn–Qz˜v’dWsQs’žSp žv–cœ