Tôi đã đăng các câu hỏi tương tự ở đây trong một vài ngày, nhưng có vẻ như tôi đã không hỏi điều đúng, vì vậy xin lỗi nếu tôi đã kiệt sức bạn với các câu hỏi XOR của tôi: D.Làm thế nào để XOR hai chuỗi hex sao cho mỗi byte được XOR riêng biệt?
Đến điểm - tôi có hai chuỗi hex và tôi muốn XOR các chuỗi sao cho mỗi byte được XOR riêng biệt (nghĩa là mỗi cặp số được XOR riêng biệt). Và tôi muốn làm điều này trong python, và tôi muốn có thể có các chuỗi có độ dài khác nhau. Tôi sẽ làm một ví dụ bằng tay để minh họa cho quan điểm của tôi (tôi đã sử dụng môi trường mã vì nó cho phép tôi để đưa vào không gian nơi tôi muốn họ được):
Input:
s1 = "48656c6c6f"
s2 = "61736b"
Encoding in binary:
48 65 6c 6c 6f = 01001000 01100101 01101100 01101100 01101111
61 73 6b = 01100001 01110011 01101011
XORing the strings:
01001000 01100101 01101100 01101100 01101111
01100001 01110011 01101011
00001101 00011111 00000100
Converting the result to hex:
00001101 00011111 00000100 = 0d 1f 04
Output:
0d1f04
Vì vậy, để tóm tắt, tôi muốn để có thể nhập hai chuỗi hex (thường sẽ là các chữ cái ASCII được mã hóa bằng hex) có độ dài khác nhau hoặc bằng nhau và nhận được XOR của chúng sao cho mỗi byte được XOR riêng biệt.
Tại sao không chu kỳ khóa 's2' và áp dụng nó cho * tất cả * ký tự của' s1'? Tại sao chỉ áp dụng nó cho 3 cuối cùng? –