Language: C++
encriptar usando abecedario invertido
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
January 22, 2010 @ 5:43am
Tags:
Report Abuse
Subscribe
Discuss
What's new
What is it
New Snippet
Recent Snippets
My Snippets
Web Code
Search

