Шифрование и дешифрование 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;
}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы и
  2. Функция encode() принимает три аргумента:
    • char word[] - слово, которое необходимо зашифровать
    • char *res - указатель на массив, в который будет зашифровано слово
    • char key[] - ключ для шифрования (XOR-шифрование)
  3. В функции main() создаем:
    • char *word = Andrew - указатель на строку Andrew, которую необходимо зашифровать
    • char res = malloc(strlen(word)sizeof(*res)) - выделяем память под массив, в который будет зашифровано слово
    • BsFGgE - ключ для шифрования
  4. Вызываем функцию encode(word, res, key)
  5. Выводим результат на экран с помощью printf()
  6. Освобождаем память с помощью free(res)
  7. Возвращаем 0, чтобы указать, что программа успешно завершилась

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.75 из 5