- Código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
// Coder = > MMxM
int decode(char *word,char *key,char *opt){
int a;
int cript;
for(a=0;a<strlen(word);a++){
if(!isalpha(word[a]),!isalpha(key[a]))
continue;
word[a] = toupper(word[a]);
key[a] = toupper(key[a]);
if(word[a] < 96 && word[a] > 123){
word[a] -= 97;
}
if(key[a] < 96 && key[a] > 123){
key[a] -= 97;
}
if(opt[0] == 'd')
cript = ((word[a]-key[a]+26)%26)+65;
if(opt[0] == 'e')
cript = ((word[a]+key[a])%26)+65;
word[a] = cript;
}
}
int help(char *nome){
printf("\n[+] Cifra de Vigenere\n");
printf("[0] Coder => MMxM\n");
printf("\n\tModo de uso: %s <palavra> <chave> <e|d>\n",nome);
printf("\n\t \"A chave e a palavra devem ter o mesmo tamanho\"\n\n");
exit(0);
}
int main(int argc,char **argv){
if(argc != 4)
help(argv[0]);
if(strlen(argv[1]) != strlen(argv[2]))
help(argv[0]);
if(argv[3][0] != 'd' && argv[3][0] != 'e')
help(argv[0]);
printf("PALAVRA: %s\n",argv[1]);
printf("CHAVE: %s\n",argv[2]);
decode(argv[1],argv[2],argv[3]);
printf("RESULTADO: %s\n\n",argv[1]);
}
Participe do fórum, é rápido e fácil