Phép XOR (ký hiệu ⊕) là phép toán nền tảng trong nhiều thuật toán mật mã và cũng là dạng mã hóa "đồ chơi" phổ biến trong các bài CTF nhập môn. Với mã hóa XOR một byte, mỗi byte p của bản rõ được biến đổi thành byte bản mã c=p⊕key, với key là một số nguyên cố định từ 0 đến 255. Vì ⊕ là phép toán tự nghịch đảo ((p⊕k)⊕k=p), việc giải mã hoàn toàn giống hệt việc mã hóa: chỉ cần XOR lại với đúng khóa.
Cho bản mã dưới dạng chuỗi hex (mỗi byte biểu diễn bằng 2 ký tự hex thường, ví dụ byte 0x41 viết là 41) và khóa (dạng số nguyên thập phân), hãy khôi phục flag gốc.
Ví dụ: với khóa =42, bản mã hex 697e6c5172657875686b7963697957 giải mã thành CTF{XOR_BASICS}.
Dòng 1: chuỗi hex của bản mã (chữ thường, có thể rỗng nếu bản mã có độ dài 0).
Dòng 2: số nguyên key (0≤key≤255).
In ra một dòng duy nhất là bản rõ sau khi giải mã (chuỗi ký tự ASCII in được, có thể rỗng).
Ví dụ:
Đầu vào:
bcabb984b9aab3b3a0b2beacb482
255
Đầu ra:
CTF{FULL_MASK}
Đầu vào:
4354467b5a45524f5f4b45597d
0
Đầu ra:
CTF{ZERO_KEY}
Đang tải editor...