Crittografia programma per deco/cifrare

Stato
Discussione chiusa ad ulteriori risposte.

kr1pn0$

Utente Silver
14 Ottobre 2008
69
5
0
70
scusate,
ma oggi ho scritto un mio programma per decodificare e cifrare
è giusto il metodo?
(Se ho sbagliato andava in progr. mi scuso)
cifratore
Codice:
#include <stdio.h>
#include <stdlib.h>
void main(void);
void main(void)
{
     char buff;
     int key=0;
     char percorso_in[200];
     char percorso_out[200];
     int cont=0;
     while(cont==0)
     {
                   printf("\nDigita il sorgente: ");
                   gets(percorso_in);
                   FILE *in;
                   in = fopen(percorso_in,"r");
                   if(!in)
                   {
                          printf("Percorso non valido, ERRORE");
                   }
                   else
                   {
                       fclose(in);
                       cont=1;
                   }
     }
     FILE *in;
     in = fopen(percorso_in,"r");
     cont=0;
     while(cont==0)
     {
                   printf("\nDigita la destinazione(se non esiste verra' creata:\n ");
                   gets(percorso_out);
                   FILE *out;
                   out = fopen(percorso_out,"w+");
                   if(!out)
                   {
                          printf("Percorso non valido, ERRORE");
                   }
                   else
                   {
                       fclose(out);
                       cont=1;
                   }
     }
     FILE *out;
     out = fopen(percorso_out,"w+");
     cont=0;
     while(cont==0)
     {
                   printf("\nDigita la chiave(tra 1 e 70): ");
                   scanf("%d",&key);
                   if(key < 1 || key > 70)
                   {
                          printf("chiave non valida..\n");
                   }
                   else
                   {
                       cont=1;
                   }
     }
     printf("cifratura in corso");
     while((fscanf(in,"%c",&buff))>0)
     {
                                     buff+=key;
                                     fprintf(out,"%c",buff);
                                     printf(".");
     }
     printf("\nCifratura eseeguita...\n");
     system("pause");
}
dec
Codice:
#include <stdio.h>
#include <stdlib.h>
void main(void);
void main(void)
{
     char buff;
     int key=0;
     char percorso_in[200];
     int cont=0;
     while(cont==0)
     {
                   printf("\nDigita il sorgente: ");
                   gets(percorso_in);
                   FILE *in;
                   in = fopen(percorso_in,"r");
                   if(!in)
                   {
                          printf("Percorso non valido, ERRORE");
                   }
                   else
                   {
                       fclose(in);
                       cont=1;
                   }
     }
     FILE *in;
     in = fopen(percorso_in,"r");
     cont=0;
     while(cont==0)
     {
                   printf("\nDigita la chiave(tra 1 e 70): ");
                   scanf("%d",&key);
                   if(key < 1 || key > 70)
                   {
                          printf("chiave non valida..\n");
                   }
                   else
                   {
                       cont=1;
                   }
     }
     printf("decifratura in corso:\n");
     while((fscanf(in,"%c",&buff))>0)
     {
                                     buff-=key;
                                     printf("%c",buff);
     }
     printf("\ndeCifratura eseeguita...\n");
     system("pause");
}
 
In cosa cifra?
Io avevo fatto un algoritmo di cifratura semplicissimo che aggiungeva ai codici ASCII del carattere un numero casuale e poi aggiungeva il numero casuale al numero, così: 140.40 per esempio. Poi criptava il carattere in base64.
Qui: http://www.informarts.org/encrypt

PS: Mille messaggi!!!
 
kr1pn0$ ha detto:
buone regole di programmazione :D

ehm veramente è tutto il contrario semanticamente ha solo un'utilità, impostare i valori di default dei parametri della main ma anche li si evita perchè ci sono altri modi...
il prototipo serve perchè una funzione definita dopo un'altra possa essere richiamata dalla prima, e questo si fà scrivendo il prototipo in genere all'inizio ma basta prima della funzione che usa quella funzione
intortato? beh per farla breve il prototipo della main è l'unico inutile...

si poi il codice è un pò troppo semplice ci sommi una chiave numerica tra 1 e 70... con un prog che fà 70 file lo sgami per forza...
 
come algoritmo di cifratura è alquanto primitivo e insicuro (null'altro che un parente di ROT13).
un simpatico esercizio di programmazione, ma di certo non lo userei per tenere al sicuro i miei dati. ;)

P.S. quoto sul fatto che il prototipo della main è inutile... cmq codice tuo, decisione tua :)
 
si bè sicuramente non lo usera la NASA....
si ma adesso sto elaborando un nuovo codice... :d
Inserisci una specie di pass,
viene trasformata in x numero,
dove x è il numero dei caratteri
Password
P(char) -> int1
a(char)-> int2
...
s(char)->int8
e poi legge un carattere e gli somma al primo(char) il primo int e cosi via
e si ottiene
(non è giusta la trasformazione)
Testo:
Codice:
ciao mondo come va?
pass
Codice:
ciao
si ottiene
Codice:
(c+c)(i+i)(a+a)(o+o)( +c)(m+i)(o+a)(n+o)(d+c)(o+i)

riguardo al main
è perchè sono cresciuto con trincky_C e lui usava cosi....
( pensavo era una buona regola :p )

ho anche creato un decodificatore brutal... he hehhehe
:d
ecco:
Codice:
#include <stdio.h>
#include <stdlib.h>
main()
{
     char name[100];
     int n;
     char buff;
     printf("Decodificatore brutal....");
     printf("Crea una nuova cartella e metti dentro il file da decodificare
     printf("\nInserisci il nome del file: ");
    gets(name);
    FILE *in = fopen(name,"r");
    if(!in){ printf("File non valido..."); exit(2); }
    /* non ho messo un sistema di creazione di cartelle perchè funzionava solo su windows */
    FILE *out;
    out = fopen("risultati.txt");
    // metto tutto in un file per facilitare la lettura...
    for(n=1;n<=70;n++){
         fprintf("#####################\nPossibile soluzione numero %d\n###########################\n",n);
         printf("\nProvo soluzione %d...\nScrivo soluzione %d",n,n);
          while((fscanf(in,"%c",&buff))>0)
          {
                buff-=n;
                fpritf(out,"%c",buff);
                printf(".");
            }
        }
}
 
kr1pn0$ ha detto:
riguardo al main
è perchè sono cresciuto con trincky_C e lui usava cosi....
( pensavo era una buona regola :p )

ho anche creato un decodificatore brutal... he hehhehe
:d
ecco:




nooooo anche tu no....
brutal al massimo è un film hard...
una volta per tutte gente BRUTAL != BRUTE FORCE
[ot]e che è trincky_C????[/ot]
 
Stato
Discussione chiusa ad ulteriori risposte.