ГоловнаВсі публікаціїКатегоріїПро проєкт

Що таке XOR і як він працює?

Обкладинка нотатки: Що таке XOR і як він працює?
Зміст дописунатисність на посилання, щоб перейти до потрібного місця
XOR (виключне АБО) – це проста, але корисна логічна операція, яка використовується у програмуванні, криптографії та обробці даних. Вона працює за правилом: якщо два значення однакові, результат буде 0, якщо різні – 1.

Як XOR виглядає на практиці?

Уявімо, що у вас є два вимикачі:
  • Якщо обидва вимкнені – світло не горить.
  • Якщо обидва увімкнені – теж не горить.
  • Але якщо один увімкнено, а інший вимкнено – світло загоряється.
Ось так і працює XOR: якщо елементи різні – виходить 1, якщо однакові – 0.

Де використовується XOR?

Шифрування – якщо взяти текст і зробити XOR з ключем, отримаємо зашифрований варіант. Повторний XOR тим же ключем поверне вихідний текст.
Зміна бітів – XOR допомагає в перемиканні окремих бітів у числах.
Перевірка відмінностей – використовується в алгоритмах порівняння двох наборів даних.
Простими словами, XOR – це як правило "тільки одне з двох", що допомагає у багатьох задачах з обробкою інформації. Розглянемо простий приклад написаний на Ruby (ruby 3.4.2)

Приклад XOR (Ruby)

def xor_encrypt(text, key)
  text.bytes.map.with_index { |char, i| char ^ key.bytes[i % key.size] }.pack('C*')
end

def xor_decrypt(encrypted_text, key)
  xor_encrypt(encrypted_text, key)
end

text = "Hello, XOR!"
key = "key123"

encrypted = xor_encrypt(text, key)
puts "🔒 Зашифровано: #{encrypted.inspect}"

decrypted = xor_decrypt(encrypted, key)
puts "🔓 Розшифровано: #{decrypted}"
В терміналі надрукує прибризно таке:
...
🔒 Зашифровано: "#\x00\x15]]\x1FK=6c\x13"
...
🔓 Розшифровано: Hello, XOR!
Тут кожен символ тексту комбінується з ключем через XOR.
Повторна операція з тим самим ключем повертає початковий текст.
Це один із найпростіших способів шифрування, який використовується в багатьох алгоритмах.
06.02.2025 15:31

Фікс помилки [DEPRECATION] #adapters is deprecated. Use #profiles instead. (Codecov / docile)

meme code
meme code@memecode
Що таке Promise у JavaScript і як швидко зрозуміти суть?
18.02.2025 11:01

Що таке Promise у JavaScript і як швидко зрозуміти суть?

meme code
meme code@memecode
Структура Promise (JavaScript) та як з цим працювати
18.02.2025 14:33

Структура Promise (JavaScript) та як з цим працювати

meme code
meme code@memecode
Що таке Memoization (приклади Ruby та Ruby on Rails)?
20.02.2025 18:16

Що таке Memoization (приклади Ruby та Ruby on Rails)?

meme code
meme code@memecode
Що таке debounce у JavaScript і чому це важливо?
21.03.2025 16:39

Що таке debounce у JavaScript і чому це важливо?

meme code
meme code@memecode
Що таке CFB (Cipher Feedback)?
21.03.2025 16:53

Що таке CFB (Cipher Feedback)?

meme code
meme code@memecode
Embed програмування: що це таке і з чого почати
24.03.2025 16:48

Embed програмування: що це таке і з чого почати

meme code
meme code@memecode
Pessimistic Lock у Rails: що це таке і коли застосовувати. Які є альтернативи?
31.03.2025 17:45

Pessimistic Lock у Rails: що це таке і коли застосовувати. Які є альтернативи?

meme code
meme code@memecode
Чому PostgreSQL пропускає ID при збережені нових записів? (Heroku)
31.03.2025 19:13

Чому PostgreSQL пропускає ID при збережені нових записів? (Heroku)

meme code
meme code@memecode