Roozbeh Amiressami Ответов: 3

Кодирование декодирование с использованием элемента XOR


привет мне нужно создать метод для персонального кодирования вот так

например, у меня есть строковый параметр A = "P@ssw0rd" и B = 0xffa1
С = ИСКЛЮЧАЮЩЕЕ ИЛИ Б
С - это мой результат
все ясно
но при расшифровке
какой оператор я должен использовать, чтобы получить A из C и B????
A = C (какой оператор) B ??????

Что я уже пробовал:

string A = "P@ssw0rd";
string B = 0xffa1;
C = A XOR B

3 Ответов

Рейтинг:
2

OriginalGriff

Тот самый!

A XOR B == C
C XOR B == A

Но TBH XOR - это не очень хороший алгоритм шифрования, его слишком легко взломать - и вы все равно не должны шифровать пароли! Вы должны хэшировать свои пароли, а не шифровать их: Хранение паролей: как это сделать.[^]


Рейтинг:
2

CPallini

Побитовые в XOR операция является обратимой:

(a xor b) xor b = a

следовательно, если это, вероятно, сделано, вы можете обратить вспять XOR 'шифрования' просто XORИнг снова с тем же ключом.


Roozbeh Amiressami

Огромное спасибо!
я знаю но это проект колледжа

Рейтинг:
1

Patrice T

Цитата:
но при расшифровке
какой оператор я должен использовать, чтобы получить A из C и B????

То же
Второй КСОР отменяет первый.
Так что когда у вас есть C=A xor B, вы также будете иметь A=C xor B и B=A xor C с одинаковыми значениями для A, B, C.