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