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; }
Объяснение кода листинга программы
- Функция
XOR_Crypt
принимает два аргумента типаAnsiString
:in
иpass
. - Переменная
out
инициализируется пустой строкой и будет содержать зашифрованный результат. - Используется цикл
for
для прохода по каждому символу входной строкиin
. - Внутри цикла каждый символ
in
XOR'ится с соответствующим символом из строкиpass
. - Результат XOR операции добавляется в конец строки
out
. - После завершения цикла возвращается зашифрованная строка
out
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д