int main(){ char chave[] = ""; FILE *arq, *arqo, *arqw; arq = fopen("entrada-vigenere.txt", "r"); arqo = fopen("texto-original.txt", "r"); arqw = fopen("saida-vigenere.txt", "w"); if(arq == NULL) printf("Não abriu"); char dados[10000], dados1[10000]; fgets(dados, 10000, arq); fgets(dados1, 10000, arqo); int i, j; char *ichave = (char *)malloc(sizeof(char)*strlen(dados)); for(i=0; i<strlen(dados); i++){ char carac_original = dados1[i]; for(j=0; j<256; j++){ int kdec = decodificar(dados[i], j); if(carac_original == kdec){ ichave[i] = j; } } } printf("---------------\nChave descoberta: %s\n--------------------\n", ichave); fclose(arqw); return 0; }
char *sdecodifica(char *dados, int chave){ char *ndados = (char *)malloc(sizeof(char)*strlen(dados)); int i; for(i=0; i<strlen(dados); i++){ ndados[i] = decodificar(dados[i], chave); } return ndados; }
void MainWindow::on_actionDecode_triggered() { QString text = ui->plainTextEdit_2->document()->toPlainText(); QString aux = "",res="",msg=""; int cantErrors = 0; QList<QString> listaErrors; int ind = 0,blocks=1; while (ind < text.length()){ aux += text.at(ind); ind++; if (aux.length() == 12){ res += decodificar(aux); if (bitErrorFlag != 0){ cantErrors++; listaErrors.push_back(tr("(block ")+tr("").setNum(blocks)+tr(",")+tr(" bit ")+tr("").setNum(bitErrorFlag)+tr(")")); } blocks++; aux = ""; } else if(ind == text.length()){ while(aux.length() < 12) aux += tr("0"); res += decodificar(aux); if (bitErrorFlag != 0){ cantErrors++; listaErrors.push_back(tr("(block ")+tr("").setNum(blocks)+tr(",")+tr(" bit ")+tr("").setNum(bitErrorFlag)+tr(")")); } blocks++; aux = ""; } bitErrorFlag = 0; } if (cantErrors > 0){ msg+=tr("There are ")+tr("").setNum(cantErrors)+tr(" errors: "); for (int i=0; i<listaErrors.length(); i++) msg += listaErrors.at(i) + tr(","); } ui->plainTextEdit_3->setPlainText(msg); ui->plainTextEdit->clear(); ui->plainTextEdit->setPlainText(res); }
int main(){ int chave = 200; FILE *arq; arq = fopen("entrada.txt", "r"); if(arq == NULL) printf("Não abriu"); char dados[10000]; fgets(dados, 10000, arq); if(dados == NULL) printf("Não leu fgets"); int i = 0; for(i=0; i<strlen(dados); i++){ int k = (int)dados[i]; int gerado = codificar(k); int decodificado = decodificar(gerado); printf(">%c - %c\n", gerado, decodificado); } return 0; }