Шифрование и дешифрование 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, чтобы указать, что программа успешно завершилась