Woodstock Geschrieben 13. Juni 2003 Teilen Geschrieben 13. Juni 2003 Hallo! Ich möchte aus zwei mir bekannten Hex-Zahlen eine dritte Zahl generien. Was für ein Verfahren würdet Ihr empfehlen bzw. wie würdet Ihr das machen? Es darf aber kein Zufall sein - da ich dieses Generieren wiederholen können muss. Bine Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 13. Juni 2003 Teilen Geschrieben 13. Juni 2003 Die einfachste Methode ist wahrscheinlich, die beiden Zahlen bitweise exklusiv-oder zu verknüpfen. Werden denn besondere Anforderungen an die dritte Zahl gestellt? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MasterC Geschrieben 13. Juni 2003 Teilen Geschrieben 13. Juni 2003 Wie wärs mit addieren? Ok, dass ist fies von mir. Wozu genau willst du aus zwei Hex-Zahlen eine dritte machen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Woodstock Geschrieben 13. Juni 2003 Autor Teilen Geschrieben 13. Juni 2003 Aus den beiden Zahlen soll ein Key erstellt werden. Und einfaches addieren ist nicht - zu einfach. Das mit dem bitweisen verknüpfen finde ich gut! Bine Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 13. Juni 2003 Teilen Geschrieben 13. Juni 2003 Wenn`s komplizierter sein soll könntest du ja erst bei Zahlen per UND und per ODER verknüpfen und dann beide Ergebnisse nochmal mit UND oder so. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 13. Juni 2003 Teilen Geschrieben 13. Juni 2003 Original geschrieben von Woodstock Das mit dem bitweisen verknüpfen finde ich gut! Exklusives Oder (XOR) , die einfachste Art der Verschlüsslung Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
need-some-blood Geschrieben 16. Juni 2003 Teilen Geschrieben 16. Juni 2003 Bilde doch einfach die Quersumme... MVG need-some-blood Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 16. Juni 2003 Teilen Geschrieben 16. Juni 2003 Damit kommt man aber nicht mehr auf die Originalzahlen, aber ich glaube mit meiner Methode auch nicht unbedingt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
need-some-blood Geschrieben 16. Juni 2003 Teilen Geschrieben 16. Juni 2003 wahrscheinlich genausowenig wie bei mir. aber evtl. hilft ihm ja der Huffman-Co weiter. Hat zwar weniger mit Verschlüsselung als mit Kompression zu tun. Aber um sich mal reinzudenken recht nützlich. Infos unter EducETH MVG need-some-blood Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Woodstock Geschrieben 16. Juni 2003 Autor Teilen Geschrieben 16. Juni 2003 Original geschrieben von need-some-blood ... ihm...Ohoh, böse Falle! Aber trotzdem danke! Mein Chef und ich haben uns bereits geeinigt! Sabine Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
nic_power Geschrieben 16. Juni 2003 Teilen Geschrieben 16. Juni 2003 Hallo, Eine XOR ist auch nicht komplexer als eine einfache Addition der Zahlen. Wenn Ihr wirklich Daten "verschlüsseln" wollt, dann solltet Ihr auch auf ein entsprechend sicheres Verfahren zurückgreifen. An welcher Stelle soll den der Algorithmus eingesetzt werden? Nic Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Woodstock Geschrieben 17. Juni 2003 Autor Teilen Geschrieben 17. Juni 2003 Eine richtige Verschlüsselung wird es sicher nicht. Es geht einfach nur darum aus diesen zwei Zahlen (Kundennummer und Festplattennummer) einen Key zu erzeugen der das Programm freischaltet. Bine Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
maxim_42 Geschrieben 17. Juni 2003 Teilen Geschrieben 17. Juni 2003 Du könntest dir überlegen nicht einfach die Festplattenseriennummer zu benutzen(ist ziemlich leicht rauszukriegen), sondern eine 32Bit Zahl die du erhältst wenn du die Seriennummer in einer definierten Art und Weise über die 32 Bit verteilst. Also z.B. Bit 1 steht an 20.Stelle, bit 2 an 5. Stelle usw. So ist es etwas schwieriger für den Kunden für andere Maschinen einen Schlüssel zu errechnen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Woodstock Geschrieben 17. Juni 2003 Autor Teilen Geschrieben 17. Juni 2003 Das Programm soll an eine Festplatte gebunden sein. Und der Kunde bekommt diese Nummer auch mitgeteilt. Also die Festplattennummer bleibt ganz sicher bestandteil des Keys. Genauso die Kundennummer. Mir ging es nicht darum welche Zahlen ich verwenden kann - sondern nur wie ich sie relativ einfach verschlüsseln kann. Bine Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 17. Juni 2003 Teilen Geschrieben 17. Juni 2003 also einen Algorithmus zum Kombinieren von 2 Zahlen zu einem Programmcode... Also ich hab mir mal was kleines überlegt: Zahl1 und Zahl2 bitweise verknüpfen (da es ja egal zu sein scheint, ob du das wieder Rückgängig machst ist die Verknüpfung egal). Das Ergebnis nimmst du als Binärzahl (Aufgerundet auf eine gerade Anzahl von Bit-Paaren, zur Not mit Nullen von links auffüllen). Von dieser Zahl nimmst du immer 4 bit. Beispiel: (Zahl1 und Zahl2 irgendwie verknüpfen) Zahl3 = 10 01 11 00 11 Aufgefüllt: 00 10 01 11 00 11 ergibt 3 mal 4 bit: 00 10 ; 01 11 ; 00 11 diese bitpaare nimmst du zur Berechnung. Davor hängst du immer die gleichen 4 bit und zwar 00 11 also wäre das erste Päärchen dann: 00 11 00 10, das zweite: 00 11 01 11 und das dritte 00 11 00 11. Diese Binärzahl wandelst du in Dezimal um und zählst 16 dazu. Als ergebnis hast du Zahlen zwischen 64 und 79. Dann nimmst du den ASCII Code und holst dir das dazugehörige Zeichen also [@, A, B, C, D, ..., M, N, O]. Diese Zeichen hängst du hintereinander und fertig ist dein Schlüssel für das Programm. Obiges Beispiel wäre also BGC Hoffe das hilft dir... EDIT: Die 00 beim Anfügen von 00 11 kannst du natürlich auch weglassen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
maxim_42 Geschrieben 17. Juni 2003 Teilen Geschrieben 17. Juni 2003 Zahl1 und Zahl2 bitweise verknüpfen (da es ja egal zu sein scheint, ob du das wieder Rückgängig machst ist die Verknüpfung egal). Es ist nicht egal: Bei der Erzeugung des Schlüssels wird in die eine Richtung verknüpft. Bei der Verifikation des Schlüssels in die andere. Also Nummer1 ++ Nummer2 = schlüssel ( für die Erzeugung) Schlüssel ++ Nummer2 = Nummer1 Oder Schlüssel ++ Nummer1 = Nummer2 ( für Verifikation) Von den möglichen bit-Verknüpfungen kommt da nur XOR in Frage. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 17. Juni 2003 Teilen Geschrieben 17. Juni 2003 Original geschrieben von maxim_42 Es ist nicht egal: Bei der Erzeugung des Schlüssels wird in die eine Richtung verknüpft. Bei der Verifikation des Schlüssels in die andere. Muss nicht unbedingt sein. Das Passwort bei Windows z.B. wird nie entschlüsselt. Zum Prüfen wird deine Eingabe verschlüsselt und mit dem verschlüsselt gespeicherten Passwort verglichen. Genauso würde auch hier eine Einweg "Verschlüsselung" reichen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Woodstock Geschrieben 17. Juni 2003 Autor Teilen Geschrieben 17. Juni 2003 Die Erstellung des Schlüssels soll sowohl hier bei uns passieren (wenn der Kunde nach dem Schlüssel fragt) als auch beim Kunden direkt - da das Programm ohne Hardcodieren entscheiden können muss ob der Schlüssel ok ist. Das Verschlüsseln muss nicht rückgängig gemacht werden! Sabine Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 17. Juni 2003 Teilen Geschrieben 17. Juni 2003 Original geschrieben von Woodstock Die Erstellung des Schlüssels soll sowohl hier bei uns passieren (wenn der Kunde nach dem Schlüssel fragt) als auch beim Kunden direkt - da das Programm ohne Hardcodieren entscheiden können muss ob der Schlüssel ok ist. Das mit der Harddisk-Nummer ist ja ok, die Kundennummer allerdings ist als 2te Zahl so eine Sache... da die ja nur bei euch vorhanden ist müsste die entweder in die Exe mit rein (da für jeden Kunden anders ist dies absolut keine Lösung) oder in einer Datei, die von der Exe ausgelesen wird, mitgeliefert werden. Eine andere Möglichkeit wäre es, eine Zahl vorzugeben. Dazu kannst du irgendeine Zahl nehmen (dein Geburtsdatum ohne die Punkte 12011975, oder was halt passt) und diese Zahl fest im Code haben. Dann startet der Kunde ein Programm das die HD-Nummer ausliest und z.B. in einer Datei ablegt. Diese Datei wird an euch geschickt und ihr startet ein Programm, dass aus der nummer in der Datei und der ferst hinterlegten Datei einen Key generiert. dieser Key wird eingegeben und vom Programm irgendwo gespeichert (Registry, Datei... ?). Beim Starten wird immer wieder der Key-Erzeugungsalgorithmus ausgeführt (HD-Nummer auslesen und konstante Nummer aus dem code) und der erzeugte Key mit dem gespeicherten verglichen. Edit: Ihr könntet als 2te Zahl z.B. auch die Bit-Grösse der Exe nehmen, damit wäre der Schlüssel allerdings nur für genau eine Ausgabe des Programms gültig. Jede Änderung würde einen neuen Schlüssel verlangen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Woodstock Geschrieben 17. Juni 2003 Autor Teilen Geschrieben 17. Juni 2003 Es wird die Kundennummer sein - das hat mein Cehf entschieden. Der Kunde wird ein eingabefeld für die Nummer haben - und auf seiner Lieferung steht die Nummer drauf. Damit ist das kein Problem. Bine Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 17. Juni 2003 Teilen Geschrieben 17. Juni 2003 Na ok, wie gesagt mein Algo. oben würde dir dann ja einen Schlüssel liefern. Ist aber nicht getetet sonderrn frisch ausgedacht und gepostet Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.