Шифрование и дешифрование XOR-шифрованием - C (СИ)
Формулировка задачи:
Добрый день, помогите пожалуйста написать программу на Си, которая шифрует и дешифрует слова в XOR-шифрованием
Есть код на С++, если можете, то помогите изменить этот код для Си:
#include <string> #include <iostream> using namespace std; string encode(char word[], char key[]) { char* res = new char[strlen(word)]; for (int i = 0; i < strlen(word)-1; i++) res[i] = word[i] ^ key[i]; return res; } int main() { cout << encode("Andrew", "BsFGgE"); while (true); return 0; }
Решение задачи: «Шифрование и дешифрование XOR-шифрованием»
textual
Листинг программы
#include <string.h> #include <stdio.h> char *encode(char word[],char *res, char key[]) { for (int i = 0; i < strlen(word)-1; i++) res[i] = word[i] ^ key[i]; return res; } int main() { char *word = "Andrew"; char* res = malloc(strlen(word)*sizeof(*res)); printf("%s", encode(word, res, "BsFGgE")); free(res); return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
и - Функция encode() принимает три аргумента:
- char word[] - слово, которое необходимо зашифровать
- char *res - указатель на массив, в который будет зашифровано слово
- char key[] - ключ для шифрования (XOR-шифрование)
- В функции main() создаем:
- char *word =
Andrew
- указатель на строкуAndrew
, которую необходимо зашифровать - char res = malloc(strlen(word)sizeof(*res)) - выделяем память под массив, в который будет зашифровано слово
BsFGgE
- ключ для шифрования
- char *word =
- Вызываем функцию encode(word, res, key)
- Выводим результат на экран с помощью printf()
- Освобождаем память с помощью free(res)
- Возвращаем 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д