/*
Algoritmo de cifrado vigenere:
Oscar Medina Duarte
http://www.udlap.mx/~is111936/oto02/programas/
*/
#include <stdio.h>
#include <string.h>
void uso(){
printf("Uso:\n\tvin <clave> [d|D|x|X]\nDonde\n d|D imprime decimal\ny x|X Imprime hex\n");
}
int main(int argn, char **argv){
int c,in=0,cot;
if (argn>1){
cot = strlen(argv[1]);
while ((c=getchar())!=EOF){
c=c^argv[1][in];
if (argn>2){
if ((argv[2][0]=='x')||(argv[2][0]=='X')){
printf("0x%x ",c);
}else if ((argv[2][0]=='d')||(argv[2][0]=='D')){
printf("%i ",c);
}else{
printf("Comando no reconocido\n");
uso();
exit(-1);
}
}else{
putchar(c);
}
in++;
if (in >= cot) in =0;
}
}else{
printf("Epecificar una clave\n");
uso();
}
return(0);
}