AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

XOR Verknüpfung, wie?

Ein Thema von DoktorD · begonnen am 21. Feb 2006 · letzter Beitrag vom 31. Jul 2006
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
DoktorD

Registriert seit: 13. Dez 2005
153 Beiträge
 
#1

XOR Verknüpfung, wie?

  Alt 21. Feb 2006, 15:23
Hi!!!

Ich schreibe zur Zeit meine Diplomarbeit und brauch dringend Eure Hilfe!!!
Ich studiere leider nicht Informatik, denn dann sollte ich das können. Habe leider nur
wenige Delphi Kenntnisse. Wäre schön wenn Ihr es mir so einfach wie möglich erklären könntet.

Zu meinem Problem:

Ich muss neben einer Hauptsoftware (kein Delphiprogramm o.ä.) ein zusätzliches Nebenprogramm schreiben, welches aus einer Seriennummer die Checksumme berechnet.

Beispiel:

Der Befehl: <STX>TT? mit Checksumme: <STX>TT? cs<EOT>

Hinter dem Fragezeichen wird noch ein Leerzeichen interpretiert und dann soll die Checksumme kommen (vorher natürlich berechnet)
Um die Checksumme zu ermitteln müssen alle einzelnen Zeichen ín ASCII (HEX) umgewandelt werden und XOR verknüpft werden:

dh.: 3C XOR 02 XOR 3E XOR 54 XOR 54 XOR 3F XOR 20 = 1F
< STX > T T ? Leerzeichen

Die Seriennummer kann natürlich verschieden lang sein.
Wichtig ist auch noch, dass die Seriennummer in einem TXT Dokument hinterlegt ist und beim Start des Programms ausgelesen werden muss. Wenn die Checksumme berechnet worden ist sollte dann in ein anderes Testdokument stehen

nach dem Beispiel: <STX>TT? 1F<EOT>


Wäre cool wenn das einer von Euch hinbekommen würde


Viiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiieeelen Dank!!!!
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Ganz dringend!!! XOR Verknüpfung, wie??????

  Alt 21. Feb 2006, 15:31
Hai DoktorD,

ändere bitte den Titel deines Threads!
Dringend ist hier eigentlich jede Frage. Und mit den vielen ! und ? wird keiner lust haben deinen Thread zu lesen.
Danke für dein Verständniss.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Ganz dringend!!! XOR Verknüpfung, wie??????

  Alt 21. Feb 2006, 15:40
wir machen hier für niemand die arbeit. Sag einfach an welcher Stelle du dort nicht weiter kommst und was du bereits selbst geschafft hast. Wenn du sagst wo du nicht weiter kommst helfen wir dir gern aber wir machen nicht die komplette arbeit für dich.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Ganz dringend!!! XOR Verknüpfung, wie??????

  Alt 21. Feb 2006, 15:55
Warum vorher unbedingt in Hex umwandeln?

Ansonsten wirst Dir vielleicht dies hier weiterhelfen.

ord(Zeichen1) XOR ord(Zeichen2)

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
DoktorD

Registriert seit: 13. Dez 2005
153 Beiträge
 
#5

Re: Ganz dringend!!! XOR Verknüpfung, wie??????

  Alt 21. Feb 2006, 19:36
Sorry wenn das so rübergekommen ist.

Ich hab mein Programm jetzt soweit, dass ich einen String mit der Seriennummer habe

strSN:=123456 (Die Zahl, bzw. der String kann unterschiedlich lang sein)

wie bekomme ich denn jetzt hin, dass ich jede einzelne Ziffer in einen ASCII Code XOR verknüpfen kann.

31 xor 32 xor 33 xor 34 xor 35 xor 36 wäre dann = 7 (in HEX)

Hinweis: Ich brauche das alles in HEX

Habt Ihr dafür ne Lösung?
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Ganz dringend!!! XOR Verknüpfung, wie??????

  Alt 21. Feb 2006, 19:50
Moin DoktorD,

wenn ich das richtig verstanden habe, fehlen Dir nur noch die entsprechend Begriffe um das in Delphi umsetzen zu können:

Da es sich um eine unbekannte Länge handelt: For-Schleife begrenzt durch die Länge des Strings (length)
Die Zeichen erst einmal in ihren Zahlenwert umsetzen: ord
Umwandlung einer Ganzzahl in eine hexadezimale Ausgabe: IntToHex

BTW:
Wenn Du den Edit-Button in Deinem ersten Beitrag benutzt kannst Du den Titel des Threads ändern.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
DoktorD

Registriert seit: 13. Dez 2005
153 Beiträge
 
#7

Re: XOR Verknüpfung, wie?

  Alt 21. Feb 2006, 20:00
Danke für deine Antwort. Ich weiß schon was du meinst, aber irgendwie habe ich probleme das umzusetzten

Hast du vielleicht ein Beispiel für die Schleife?

Ich muss ja irgendwie die Nummer aufspalten, d.h. aus der ganzen Ziffer einzelne machen und dann umwandeln

Was genau macht denn "ord"? Das was in der Hilfe steht verstehe ich nicht so wirklich
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: XOR Verknüpfung, wie?

  Alt 21. Feb 2006, 20:05
Moin DoktorD,

Du kannst jedes Zeichen des Strings einzeln ansprechen.
Um mal bei Deinem Beispiel zu bleiben:

strSN[3]

spricht das dritte Zeichen an, und statt eines festen Wertes nimmst Du den Schleifenzähler der for-Schleife.
Mit

ord(strSN[3]) bekommst Du dann den Zahlenwert, den das Zeichen an der dritten Stelle repräsentiert.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
DoktorD

Registriert seit: 13. Dez 2005
153 Beiträge
 
#9

Re: XOR Verknüpfung, wie?

  Alt 21. Feb 2006, 20:07
Cool Danke. Ich probiere es gleich mal aus
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: XOR Verknüpfung, wie?

  Alt 21. Feb 2006, 20:42
Delphi-Quellcode:
function checksum(SNr:String):String;
  VAR
    i:Byte;
    dummy:Byte;
begin
  dummy:=ord(SNr[1] XOR ord (SNr[2]);

  for i:=3 to length(SNr) DO
    begin
      dummy:=dummy XOR ord(SNr[i]);
    end;

  result := IntToHex(dummy);
end;
ungetestet aber sollte so gehen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz