Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [An toàn thông tin] Mã hóa XOR với khóa một byte

    Phép XOR (exclusive OR) là phép toán bit cơ bản trong nhiều thuật toán mật mã hiện đại (stream cipher, chế độ CTR/OFB của mã khối, one-time pad, ...). Với một byte khóa cố định KKK (0≤K≤2550 \le K \le 2550≤K≤255), bản mã của byte bản rõ PiP_iPi​ được tính bởi:

    Ci=Pi⊕KC_i = P_i \oplus KCi​=Pi​⊕K

    trong đó ⊕\oplus⊕ là XOR theo từng bit. Hãy viết chương trình mã hóa toàn bộ một chuỗi bản rõ bằng phép XOR với một byte khóa duy nhất.

    Ví dụ: với bản rõ "HI" và khóa 20 (hex): H=0x48,0x48⊕0x20=0x68=H = 0x48, 0x48 \oplus 0x20 = 0x68 = H=0x48,0x48⊕0x20=0x68= h; I=0x49,0x49⊕0x20=0x69=I = 0x49, 0x49 \oplus 0x20 = 0x69 = I=0x49,0x49⊕0x20=0x69= i. Bản mã dạng hex là 6869.

    • Định dạng đầu vào:
      • Dòng 1: chuỗi bản rõ PPP (mã hóa UTF-8, có thể chứa khoảng trắng, có thể là chuỗi rỗng, độ dài tối đa 100 ký tự, chỉ gồm các ký tự ASCII in được).
      • Dòng 2: giá trị khóa KKK dưới dạng đúng 2 ký tự hex (00-ff, có thể viết hoa hoặc thường).
    • Định dạng đầu ra:

      In ra một dòng duy nhất là bản mã dưới dạng chuỗi hex thường (0-9, a-f), mỗi byte biểu diễn bằng đúng 2 ký tự, viết liền không có dấu cách. Nếu bản rõ là chuỗi rỗng, in ra dòng trống.

    Ví dụ:

    Đầu vào:

    Hello, World!
    2A

    Đầu ra:

    624f464645060a7d4558464e0b
    

    Đầu vào:

    HI
    20

    Đầu ra:

    6869
    

    Đang tải editor...