Rispondi alla discussione!

Semplice Criptatore-Decriptatore in C

Postato il 27-08-2012 11:41 AM
Risposte: 2
Visite: 1093
Vai all'ultimo post


Autore della discussione:
 BlackJack4051



« Thread precedente | Thread successivo »



Semplice Criptatore-Decriptatore in C

BlackJack4051
*
Registrati




Reputazione: 2
Messaggi: 24



   27-08-2012  11:41 AM   Messaggio: #1

Ciao ragazzi volevo proporvi questi due semplici programmi per la codifica di una stringa di testo secondo una caratteristica del C e determinata da una chiave di codifica impostata dall'utente.

Sfrutto questa caratteristica dei tipi di dato.

In C un carattere viene salvato in una variabile di tipo char %c, ma prendendo in considerazione le due tabelle ASCII standard ed estesa si può notare che ad ogni carattere corrisponde un valore decimale e binario costituito da 8 bit (1 byte). Quindi se si stampa il valore di una variabile di tipo char con la specifica di conversione %d (intero) verrà visualizzato un valore intero che rappresenta il carattere corrispondente secondo le due tabelle.

I due programmi prendono in input una stringa di testo di max 100 caratteri.

Dato che una stringa è un'array contenente caratteri, si può accedere ad ogni locazione dell'array, convertirlo in intero con un operatore di conversione di formato (int). (Conversione esplicita). Dopo di che si aggiunge a quel valore intero un valore intero immesso dall'utente, che è la chiave di codifica. Dopo di che si stampa il valore intero come se fosse un carattere, quindi con la specifica di conversione %c. Questa operazione è controllata da un ciclo for controllato da un valore sentinella determinato dalla lunghezza della stringa in caratteri quindi dalla quantità di locazioni che compongono l'array.

Ecco i sorgenti:

Codice:
#include <stdio.h>
#include <string.h>


main (void)

{
    
     char pass [100];
     int secure = 0;
     int lung;
     int cont;
     int ris;
     int scelta = 1;
    
     while ( scelta == 1 ) {
    
     printf("Proteggi le tue password con questo semplice programma!\n\n\n");
     start:
     printf("\n\nInserisci la password che vuoi criptare : ");

     scanf("%s", &pass);
    
     printf("\n\n\nInserisci ora un valore numerico casuale che sia maggiore o uguale a 1 : ");
     scanf("%d", &secure);
     printf("\n\nLa password criptata : ");
    
     lung = strlen(pass);
for ( cont = 0; cont <= lung; ++cont )   {
      ris = (int) pass[cont];
      ris += secure;
      printf("%c", ris);
     }
  
          
           printf("\n");
          
           scelta:
           printf("\n\n\nContinuare con una nuova operazione? 1/2 : ");
           scanf("%d", &scelta);
          
                                      
                                    
                                    }
    
  
    
     return 0;
    
     }



-----------------------------------------------------------------





Codice:
#include <stdio.h>
#include <string.h>

main (void) {
    
     char pass [100];
     int secure = 0;
     int lung;
     int cont;
     int ris;
     int scelta = 1;
    
     while ( scelta == 1 ) {
    
     printf("Proteggi le tue password con questo semplice programma!\n\n\n");
     start:
     printf("\n\nInserisci la password che vuoi decriptare : ");

     scanf("%s", &pass);
    
     printf("\n\n\nInserisci ora il valore numerico che avevi specificato : ");
     scanf("%d", &secure);
     printf("\n\nLa password decriptata : ");
    
     lung = strlen(pass);
for ( cont = 0; cont <= lung; ++cont )   {
      ris = (int) pass[cont];
      ris -= secure;
      printf("%c", ris);
     }
  
          
           printf("\n");
          
           scelta:
           printf("\n\n\nContinuare con una nuova operazione? 1/2 : ");
           scanf("%d", &scelta);
          
        }
    
  
    
     return 0;
    
     }


Cerca 2+
metalmilitia
*
Registrati




Reputazione: 0
Messaggi: 1



   12-10-2012  11:42 AM   Messaggio: #2

Ora non vorrei svilire il tuo lavoro ma questo cifrario a sostituzione monoalfabetica (simile al Cifrario di Cesare) non resisterebbe un istante ad un qualunque attacco di crittanalisi...


Cerca 0+
Siphion
******
Super Moderatori



while(--*pointer++);

Reputazione: 65
Messaggi: 816



   12-10-2012  03:29 PM   Messaggio: #3

Suppongo se lo immaginasse anche lui Smile
Altrimenti non avrebbe utilizzato "Semplice" come aggettivo al proprio criptatore. Wink


Cerca 0+






home | disclaimer e privacy | pubblicità | collabora | contattaci | forum