我已經在這裏發表了類似的問題幾天了,但是好像我並沒有問正確的東西,所以如果我已經用我的異或問題使你筋疲力盡了。如何異或兩個十六進制字符串,以便每個字節分別異或?
重點 - 我有兩個十六進制字符串,我想XOR這些字符串,使每個字節分別XORed(即每對數字分別XORed)。我想在python中這樣做,我想能夠有不同長度的字符串。我會做手工的例子來說明我的觀點(我使用的代碼環境,因爲它可以讓我把在空間,我希望他們能):
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
因此,要總結,我希望能夠到輸入兩個不同或相等長度的十六進制字符串(這些字符串通常是以十六進制編碼的ASCII字母),並獲得它們的XOR,使得每個字節分別異或。
爲什麼不循環's2'鍵並將其應用於's1'的* all *字符?爲什麼只應用到最後3? –