Xor шифрование - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Подскажите правильно ли у меня реализованна функция шифрования
#define SIZE_OF_KEY 10
char Key[10]={'a','w','a','c','u','a','w','a','c','u'};
 
char crypt(char data){
   static char i; 
   char result=data^Key[i++];
   if(i>=SIZE_OF_KEY)i=0;
  return result;
}
а то бывает обрывается крипт или добавляется, что то лишнее, потом не могу раскодировать полность пол строки раскодирует половину нет.

Решение задачи: «Xor шифрование»

textual
Листинг программы
AnsiString XOR_Crypt(AnsiStrig in, AnsiString pass)
{
AnsiString out;
for (int x=1;x<in.Length()+1;x++)
        {
        out += (char)(in[x] ^ pass[x%pass.Length()+1]);
        }
return out;
}

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

  1. Функция XOR_Crypt принимает два аргумента типа AnsiString: in и pass.
  2. Переменная out инициализируется пустой строкой и будет содержать зашифрованный результат.
  3. Используется цикл for для прохода по каждому символу входной строки in.
  4. Внутри цикла каждый символ in XOR'ится с соответствующим символом из строки pass.
  5. Результат XOR операции добавляется в конец строки out.
  6. После завершения цикла возвращается зашифрованная строка out.

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


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

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

11   голосов , оценка 3.727 из 5