New Snippet New Snippet Recent Snippets Recent Snippets My Snippets My Snippets Web Code Search Snippets Search
Sign inor Register
Language: C++

encriptar usando abecedario invertido

217 Views
Copy Code Show/Hide Line Numbers
   1:  /*    ENCRIPTANDO ARCHIVOS USANDO 
   2:   *     ABECEDARIO INVERTIDO
   3:   *     Codigo fuente libre para distribuir modificar y copiar.
   4:   *     Autor: ezequielher 17/01/08 funciona bajo plataforma unix /linux 
   5:   *    Su función es encriptar texto encontrado en el archivo indicado en consola 
   6:   *    reemplazando cada caracter por el opuesto al abecedario. (Z por A)
   7:   *     Visitar Sitio web: http://ezequielher.wordpress.com/
   8:   */
   9:  #include <sys/types.h>
  10:  #include <sys/stat.h>
  11:  #include <fcntl.h>
  12:   
  13:  #include <stdlib.h>
  14:  #include <unistd.h>
  15:  #include <string.h>
  16:  #include <strings.h>    // Para revisar tipo de archivo que se quiere encriptar
  17:  #include <stdio.h>
  18:   
  19:  #define MAX 1024
  20:   
  21:  void err_quit(char *msge);
  22:   
  23:  char *encripta(char buffer[]);
  24:   
  25:  char frase_enc[MAX];
  26:   
  27:  int main(int argc, char *argv[])
  28:  {
  29:      char buffer[MAX];
  30:      char *dest, *exten;
  31:      int fd_orig, fd_dest, n;
  32:      char *name_orig= argv[1];
  33:      char name_dest[32];
  34:   
  35:      if (argc!=2) {
  36:          fprintf(stderr, "Modo uso: %s <archivo.txt>\n", argv[0]);
  37:          return -1;
  38:      }
  39:   
  40:      exten= rindex(name_orig, '.');
  41:      if (strcmp(exten, ".txt"))
  42:          err_quit("Solo archivos de txt plano");
  43:   
  44:      if ((fd_orig= open(name_orig, O_RDONLY))== -1)
  45:          err_quit("Error al abrir origen");
  46:   
  47:      strcpy(name_dest, "cifrado-");
  48:      strcat(name_dest, name_orig);
  49:   
  50:      if ((fd_dest= creat(name_dest, 0666))== -1)
  51:          err_quit("Error al abrir destino");
  52:   
  53:      while (n= read(fd_orig, buffer, sizeof buffer)) {
  54:          dest= encripta(buffer);
  55:          write(fd_dest, dest, n);
  56:      }
  57:      close(fd_dest);
  58:      close(fd_orig);    
  59:   
  60:      return 0;
  61:  }
  62:   
  63:  char *encripta(char frase[]) {
  64:      int i, cant= strlen(frase);
  65:   
  66:      for (i=0; i<cant; i++) {
  67:   
  68:          if (frase[i]>=97 && frase[i]<=122)
  69:              frase_enc[i]= 219 -frase[i]; 
  70:              // minusculas
  71:   
  72:          else if (frase[i]>=65 && frase[i]<=90)
  73:              frase_enc[i]= 155 -frase[i]; 
  74:              // mayusculas
  75:          else
  76:              frase_enc[i]= frase[i];        
  77:      }
  78:      frase_enc[cant]=0;
  79:   
  80:      return frase_enc;
  81:  }
  82:   
  83:  void err_quit(char *msge) {
  84:      perror(msge);
  85:      exit(EXIT_FAILURE);
  86:  }
by ezequielher
  January 22, 2010 @ 5:43am
Tags:

Add a comment


Report Abuse
brought to you by:
West Wind Techologies


If you find this site useful and use it frequently please consider making a donation to support this free service.
Donate