Một dạng mã dòng đơn giản mã hóa bản rõ bằng cách XOR từng byte với các byte của một khóa ngắn được lặp lại tuần hoàn cho đến hết bản rõ (tương tự nguyên lý của mã Vigenère nhưng thực hiện trên bit/byte thay vì chữ cái).
Cho bản rõ P (chuỗi ký tự ASCII, có thể chứa khoảng trắng, có thể rỗng) và khóa K (chuỗi ASCII khác rỗng, độ dài ∣K∣≤∣P∣ có thể nhỏ hơn nhiều so với ∣P∣). Bản mã C được tính như sau, với Pi, Ki là mã ASCII (0–255) của ký tự thứ i (đánh số từ 0):
Ci=Pi⊕Kimod∣K∣
Hãy in ra bản mã C dưới dạng chuỗi hex, mỗi byte biểu diễn bằng đúng 2 chữ số hex in hoa, nối liền nhau theo đúng thứ tự byte của bản rõ.
Ví dụ: P= HELLO, K= KEY. Ta có H(0x48)⊕K(0x4B)=0x03, E⊕E=0x00, L(0x4C)⊕Y(0x59)=0x15, L⊕K=0x07, O(0x4F)⊕E(0x45)=0x0A. Kết quả: 030015070A.
In ra một dòng là bản mã C dưới dạng hex in hoa (độ dài 2∣P∣ ký tự). Nếu P rỗng, in ra dòng trống.
Ví dụ:
Đầu vào:
KEY
Đầu ra:
Đầu vào:
HELLO
KEY
Đầu ra:
030015070A
Đang tải editor...