Wie XOR von zwei hex-Zeichenketten, so dass jedes byte wird XORed getrennt?

Ich haben Beitrag ähnliche Fragen hier für ein paar Tage jetzt, aber es scheint, wie ich wurde nicht gefragt, das richtige zu tun, so entschuldigen Sie mich, wenn ich erschöpft haben Sie mit meinem XOR-Fragen :D.

Auf den Punkt - ich habe zwei hex-Zeichenketten, und ich will XOR diese Zeichenfolgen, so dass jedes byte wird XORed separat (D. H. jedes paar von zahlen ist XORed separat). Und ich möchte das in python und ich möchte in der Lage sein, Zeichenketten unterschiedliche Längen haben. Ich werde tun, ein Beispiel, manuell zu veranschaulichen mein Punkt (ich habe die code-Umgebung, da es mir erlaubt, zu legen Sie in den Räumen wo ich will Sie sein):

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

Also, um es zusammenzufassen, ich möchte in der Lage sein, um Eingang zwei hex-strings (diese werden in der Regel ASCII-Zeichen codiert in hex) unterschiedlicher oder gleicher Länge und erhalten Ihre XOR, so dass jedes byte wird XORed getrennt.

  • Warum nicht Zyklus die s2 Schlüssel und für alle Zeichen der s1? Warum gelten Sie es nur für die letzten 3?
Schreibe einen Kommentar