![]() |
Re: XOR-Resultat als String
Das kommt ganz auf Deinen Wertebereich an. Jede Hexziffer kann einen von 16 Zuständen anzeigen. Wenn Du nicht mehr als 16 unterschiedliche Zeichen in Deinen Keys hast (oder Werte, oder was auch immer), dann kannst Du das zusammenfassen. Einfach jedes zweite Zeichen "wegmachen" hat mehrere gravierende Nachteile, zum einen musst Du dann annehmen dass der Wertebereich auf jeden Fall maximal von 0 bis 15 geht. Wenn das XOR den Wert 16 ergibt (Hex: $10), würdest du die 1 "wegmachen" und es bleibt nur eine Null übrig.
Auch wenn ich jetzt schon weiss, was Du antworten wirst: Ohne mehr Infos kanns keine richtige Antwort geben. |
Re: XOR-Resultat als String
Das würde auch gehen:
Delphi-Quellcode:
result:='';
for i := 1 to x do result := result+IntToHex( ( (ord(Key1[x]) xor ord(Key2[x]) ),2); Grüße Klaus |
Re: XOR-Resultat als String
Hier nochmal ein Beispiel:
Delphi-Quellcode:
Da ich jetzt aber einzelne Zeichen in jeweils ein Byte konvertiere (Byte(String1[x]), sehen die String binär dargestellt wie folgt aus:
0000 //String1
1111 //String2 xor 1111 //erwartetes Resultat
Delphi-Quellcode:
richtig wäre aber:
00000001 00000001 00000001 00000001 //String1 binär
00000000 00000000 00000000 00000000 //String2 binär xor 00000001 00000001 00000001 00000001 //Resultat binär 01010101 //Resultat als String
Delphi-Quellcode:
00010001 00010001 //String1 binär
00000000 00000000 //String2 binär xor 00010001 00010001 //Resultat binär 1111 //Resultat als String --> korrekt |
Re: XOR-Resultat als String
Hallo,
Du kannst bei IntToHex angeben, wie viele Stellen mindestens verwendet werden. Wenn Du zwei angibst, wird eben mit 0 aufgefüllt. Gruß xaromz |
Re: XOR-Resultat als String
Zitat:
Zitat:
Zitat:
Was Du vermutlich willst, ist ![]() Damit kannst Du dann Deinen String in Schüben von acht Zeichen in DWORDs wandeln und jeweils passend XORen. |
Re: XOR-Resultat als String
Zitat:
Zitat:
Ich hab's bei mir jetzt mal so gelöst:
Delphi-Quellcode:
for i := 1 to x do
Result := Result + IntToHex((StrToInt('$'+ Key1[x]) xor StrToInt('$'+ Key1[x])),1); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz