← головнаПрограмування

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

XOR (виключне АБО) – це логічна операція, що використовується у шифруванні, зміні бітів та перевірці відмінностей. Якщо значення однакові – виходить 0, якщо різні – 1. Приклад Ruby-коду.

ЗмістНатисність на посилання, щоб перейти до потрібного місця
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.
Повторна операція з тим самим ключем повертає початковий текст.
Це один із найпростіших способів шифрування, який використовується в багатьох алгоритмах.

🔥 Більше дописів

Всі публікації
Що таке CFB (Cipher Feedback)?
Програмування21 бер. '25, 16:53

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

CFB (Cipher Feedback) – це режим шифрування, де кожен блок залежить від попереднього, що забезпеч...