Расшифровка qwert-шифра - PullRequest
       4

Расшифровка qwert-шифра

0 голосов
/ 29 апреля 2019

У меня проблемы с обращением этого кода для расшифровки обратно в abc из qwerty.

Я не знаю с чего начать.Я попытался заменить индекс строкой, содержащей ABC ... Я также попытался заменить шифротекст на abc и изменить индекс на qwerty безрезультатно.

Это оригинальный код

#include <stdio.h>
#include <string.h>

int main() {
    char* ciphertext = "qwertyuiopasdfghjklzxcvbnm";    // cipher lookup

    char input[500];                                    // input buffer
    printf("Enter text: ");
    fgets(input, sizeof(input), stdin);                 // safe input from user
    input[strlen(input) - 1] = 0;                       // remove the \n (newline)
    int count = strlen(input);                          // get the string length

    char output[count];                                 // output string
    for(int i = 0; i < count; i++) {                    // loop through characters in input
        int index = ((int) input[i]) - 97;              // get the index in the cipher by subtracting 'a' (97) from the current character
        if(index < 0) {
            output[i] = ' ';                            // if index < 0, put a space to account for spaces
        }
        else {
            output[i] = ciphertext[index];              // else, assign the output[i] to the ciphertext[index]
        }
    }
    output[count] = 0;                                  // null-terminate the string

    printf("output: %s\n", output);                     // output the result
}

Мои усилия ничего не сделали, и он просто перепечатывает то, что я ввел

1 Ответ

2 голосов
/ 29 апреля 2019

Итак, вы начали с 'a' (ascii 97) и преобразовали его в индекс в массив символов через char_value - 97

Чтобы преобразовать обратно в открытый текст, вам нужно перейти от q к a.

Одним из способов будет поиск ciphertext, чтобы найти индекс, в котором появляется ваш символ (q), а затем добавьте 97 к этому индексу, чтобы получить исходное значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...