Ho postato domande simili qui per un paio di giorni, ma sembra che non stavo chiedendo la cosa giusta, quindi scusami se ti ho esaurito con le mie domande XOR: D.Come eseguire XOR due stringhe esadecimali in modo che ogni byte sia XORed separatamente?
Al punto - Ho due stringhe esadecimali e voglio XOR queste stringhe in modo tale che ogni byte sia XORed separatamente (cioè ogni coppia di numeri è XORed separatamente). E voglio farlo in python, e voglio essere in grado di avere stringhe di diversa lunghezza. Farò manualmente un esempio per illustrare il mio punto (io ho usato l'ambiente di codice perché mi permette di mettere in spazi dove voglio che siano):
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
Quindi, per riassumere, voglio essere in grado di inserire due stringhe esadecimali (di solito lettere ASCII codificate in hex) di lunghezza diversa o uguale e ottenere il loro XOR in modo tale che ogni byte sia XORed separatamente.
Perché non utilizzare la chiave 's2' e applicarla a * tutti * i caratteri di' s1'? Perché applicarlo solo agli ultimi 3? –