Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Eindeutige Nr. Weltweit auslesen (https://www.delphipraxis.net/97789-eindeutige-nr-weltweit-auslesen.html)

Christian18 16. Aug 2007 12:39


Eindeutige Nr. Weltweit auslesen
 
Hallo,

ich habe mal irgendwo im Internet gelesen, dass es eine eindeutige Nummer gibt, die man auslesen kann. Ich glaube das war die SID nummer. Ist das wirklich so das jeder rechner eine andere auf der welt hat? Wie kann ich diese auslesen.

MFG Chris

yankee 16. Aug 2007 12:43

Re: Eindeutige Nr. Weltweit auslesen
 
Ja, es gibt eine eindeutige Nummer, die weltweit einheitlich ist...
Der Fachbegriff dafür ist allerdings Pi.
Mit bis zu 10 Millionen stellen kannst du sie hier herunterladen: http://www.pibel.de/

EDIT: entschuldige die Antowrt, aber die Frage ist echt nicht gut formuliert. Was zur Hölle möchtest du wissen?

mkinzler 16. Aug 2007 12:45

Re: Eindeutige Nr. Weltweit auslesen
 
Bei der SID handelt es sich um eine GUID

s-off 16. Aug 2007 13:00

Re: Eindeutige Nr. Weltweit auslesen
 
Hallo,

meinst Du evtl. die Mac-Adresse?
Aber Achtung - die Eindeutigkeit betreffend werden zwei Fälle unterschieden (Stichwort einundvierzigstes Bit).

Zum Auslesen dieser wirst Du sicherlich etwas finden.

Edit: SChrebrechtsfehlgdjker

DeddyH 16. Aug 2007 13:03

Re: Eindeutige Nr. Weltweit auslesen
 
Naja, die MAC-Adresse ist nur theoretisch eindeutig, es waren auch schon Fälschungen im Umlauf. Außerdem soll es noch Rechner ohne Ethernetkarte geben.

Luckie 16. Aug 2007 13:07

Re: Eindeutige Nr. Weltweit auslesen
 
Du willst eine weltweit eindeutige ID erzeugen? Oder verstehe ich dich falsch? Dann nimm eine GUID. Die kannst du direkt mit der IDE erzeugen. Wie man sie zur Laufzeit generieren kann, weiß ich leider nicht im Moment.

s-off 16. Aug 2007 13:09

Re: Eindeutige Nr. Weltweit auslesen
 
Zitat:

Zitat von DeddyH
Naja, die MAC-Adresse ist nur theoretisch eindeutig, es waren auch schon Fälschungen im Umlauf. Außerdem soll es noch Rechner ohne Ethernetkarte geben.

Wenn Du einen besseren Vorschlag bzgl. seiner Frage hast - tu Dir keinen Zwang an.

Der Onkel meiner Mutter und dessen Schwägerins Halbbruder, hat mir mal erzählt....
Tut mir leid, aber da denkt man nunmal als erstes an die Mac-Adresse...

s-off 16. Aug 2007 13:10

Re: Eindeutige Nr. Weltweit auslesen
 
Zitat:

Zitat von Luckie
Du willst eine weltweit eindeutige ID erzeugen? Oder verstehe ich dich falsch? Dann nimm eine GUID. Die kannst du direkt mit der IDE erzeugen. Wie man sie zur Laufzeit generieren kann, weiß ich leider nicht im Moment.

Delphi-Quellcode:
CreateGUID

Neutral General 16. Aug 2007 13:14

Re: Eindeutige Nr. Weltweit auslesen
 
Mal ne dumme Frage: Wie kann das sein das jede GUID einzigartig ist. Woher weiß denn der Generator welche GUIDs schon vergeben sind?

Meflin 16. Aug 2007 13:17

Re: Eindeutige Nr. Weltweit auslesen
 
Zitat:

Zitat von Neutral General
Mal ne dumme Frage: Wie kann das sein das jede GUID einzigartig ist. Woher weiß denn der Generator welche GUIDs schon vergeben sind?

Die GUID wird zufällig erzeugt. Durch die große Anzahl der möglichen GUIDs ist dann statistisch gewährleistet, dass keine doppelt erzeugt (= vergeben) wird ;)


s-off 16. Aug 2007 13:17

Re: Eindeutige Nr. Weltweit auslesen
 
Zitat:

Zitat von Neutral General
Mal ne dumme Frage: Wie kann das sein das jede GUID einzigartig ist. Woher weiß denn der Generator welche GUIDs schon vergeben sind?

Sind wir schon so weit, dass wir mit Bestimmtheit sagen können, dass er eine GUID meint? :stupid:

Naja, aufjeden Fall wird bei der Erzeugung einer GUID die Mac-Adresse (sofern vorhanden, danke DeddyH) berücksichtigt.

Luckie 16. Aug 2007 13:19

Re: Eindeutige Nr. Weltweit auslesen
 
Siehe dazu auch hier: http://www.michael-puff.de/Developer...6_06/sid.shtml
Zitat:

Eine SID ist weltweit eindeutig. Dies wird dadurch garantiert, dass es sich um einen 96-Bit Wert handelt, der jeden Rechner eindeutig identifiziert und bei der Installation erzeugt und in der Registry abgelegt wird. Die Eindeutigkeit entsteht dadurch, dass die Wahrscheinlichkeit einer Kollision vernachlässigbar ist.

OregonGhost 16. Aug 2007 13:19

Re: Eindeutige Nr. Weltweit auslesen
 
Zitat:

Zitat von NeutralGeneral
Mal ne dumme Frage: Wie kann das sein das jede GUID einzigartig ist. Woher weiß denn der Generator welche GUIDs schon vergeben sind?

Zitat:

Zitat von MSDN
A GUID is a 128-bit integer (16 bytes) that can be used across all computers and networks wherever a unique identifier is required. Such an identifier has a very low probability of being duplicated.

Oder anders gesagt, sie sind ungefähr eindeutig. Generier irgendwie die Zeit mit rein und irgendwas, was du vom Rechner bekommst, wie Seriennummern, und du bekommst eine Nummer, die den Rechner ziemlich eindeutig identifiziert, aber theoretisch mehrmals vorkommen kann (also zum Beispiel, wenn du in der Zeit rückwärts reist... oder die System-Uhr einfach verstellt wurde ;)).
Ich poste das mal trotz rotem Kasten. Vielleicht hilft der zusätzliche Hinweis.

DeddyH 16. Aug 2007 13:19

Re: Eindeutige Nr. Weltweit auslesen
 
@s-off: Du musst nicht gleich sauer reagieren, ich wollte ja nur darauf aufmerksam machen, dass die MAC-Adresse, die ja per Spezifikation weltweit eindeutig sein soll, dies in der Praxis nicht unbedingt auch ist. Natürlich geht die Wahrscheinlichkeit, jemals 2 Rechner mit derselben MAC-Adresse zu Gesicht zu bekommen, statistisch gesehen gegen 0.

mkinzler 16. Aug 2007 13:20

Re: Eindeutige Nr. Weltweit auslesen
 
Zitat:

Sind wir schon so weit, dass wir mit Bestimmtheit sagen können, dass er eine GUID meint? Stupid
Er sprach von SID und die SID ist eine GUID. Außerdem hat ein Rechner keine MAC sondern ein Netzwerkinterface. Ein Rechner oder Netzwerkkarte hat also keine MAC-Adresse und einer mit mehreren auch mehrere.

Neutral General 16. Aug 2007 13:20

Re: Eindeutige Nr. Weltweit auslesen
 
Zitat:

Zitat von s-off
Sind wir schon so weit, dass wir mit Bestimmtheit sagen können, dass er eine GUID meint? :stupid:

Ne war aber nur eine vom Thema (vielleicht) unabhängige Zwischenfrage ;)

Zitat:

Zitat von s-off
Naja, aufjeden Fall wird bei der Erzeugung einer GUID die Mac-Adresse (sofern vorhanden, danke DeddyH) berücksichtigt.

Ok danke :)

Meflin 16. Aug 2007 13:21

Re: Eindeutige Nr. Weltweit auslesen
 
Zitat:

Zitat von s-off
Naja, aufjeden Fall wird bei der Erzeugung einer GUID die Mac-Adresse (sofern vorhanden, danke DeddyH) berücksichtigt.

Das stimmt nur für Windows, GUIDs sind aber plattformunabhängig. Darüber hinaus wird die MAC auch bei "neueren" (ich weiß nicht genau seit welchen) Windows-Versionen NICHT mehr zur Erzeugung der GUIDs verwendet. Die sind heute völlig zufällig.


OregonGhost 16. Aug 2007 13:22

Re: Eindeutige Nr. Weltweit auslesen
 
Zitat:

Natürlich geht die Wahrscheinlichkeit, jemals 2 Rechner mit derselben MAC-Adresse zu Gesicht zu bekommen, statistisch gesehen gegen 0.
*hust*
Außer man generiert die MAC z.B. anhand der Seriennummer des Geräts, hat bei einer Serie Probleme, das EEPROM auszulesen und deshalb kriegen alle Geräte dieselbe Adresse :mrgreen:
Ist bei uns während der Entwicklung vorgekommen, weil eine Prototyp-Serie tatsächlich Probleme mit dem EEPROM hatte. Und so MAC-Kollisionen gehören nicht ganz zu den einfach zu findenden Fehlern.

s-off 16. Aug 2007 13:24

Re: Eindeutige Nr. Weltweit auslesen
 
@DeddyH:

Sorry, war nicht so gemeint - bin gerade ziemlich brastig. Vielleicht sollte ich mir angewöhnen, in so einem Fall lieber meinen Kollegen zu vermöbeln, als meinen Frust im Forum auszulassen :wink:

DeddyH 16. Aug 2007 13:24

Re: Eindeutige Nr. Weltweit auslesen
 
@OregonGhost: OK, aber dieser Fall sollte nicht allzu häufig auftreten, gell? :zwinker:
@s-off: Ist schon OK, jedem geht mal der Hut hoch. :cheers:

Khabarakh 16. Aug 2007 13:30

Re: Eindeutige Nr. Weltweit auslesen
 
Zitat:

Zitat von DeddyH
Natürlich geht die Wahrscheinlichkeit, jemals 2 Rechner mit derselben MAC-Adresse zu Gesicht zu bekommen, statistisch gesehen gegen 0.

Sollte ein Entwickler wirklich auf die Idee kommen, die Lizenz (rein) an die MAC-Addresse zu binden, und sollte ein Kunde damit nicht ganz zufrieden sein und zusätzlich die Grundlagen von regedit beherrschen, geht die Wahrscheinlichkeit ganz plötzlich gegen 100% :zwinker: .
Langsam wäre kein schlechter Zeitpunkt für den Thread-Ersteller, uns einmal über die Hintergründe seines Problems aufzuklären.

DeddyH 16. Aug 2007 13:36

Re: Eindeutige Nr. Weltweit auslesen
 
Das dürfte davon abhängen, wie man programmatisch die MAC-Adresse ausliest, oder?

Christian18 16. Aug 2007 13:38

Re: Eindeutige Nr. Weltweit auslesen
 
Hallo,

ich suche vom Prinzip her eine nummer die eindeutig ist, um einen kleinen kopier schutz zu erzeugen. Die nummer soll fest in das programm implemtiert werden und dadurch nicht weitergegeben werden könne. Ist denn SID so eine nummer??? MAC adresse ist ja auch schon und gut, leider kann man diese ändern.

LG Chris

Christian Seehase 16. Aug 2007 13:43

Re: Eindeutige Nr. Weltweit auslesen
 
Moin Chris,

von so etwas würde ich dringend abraten.
Die Festplatte geht kaputt, der Rechner muss neu installiert werden => Das Programm läuft nicht mehr.

DeddyH 16. Aug 2007 13:44

Re: Eindeutige Nr. Weltweit auslesen
 
Tipp: bemüh mal die Forensuche nach "Kopierschutz", das ist alles bereits lang und breit erörtert worden.

mkinzler 16. Aug 2007 13:45

Re: Eindeutige Nr. Weltweit auslesen
 
Bei einer Neuinstallation bekommt der Rechner auch ne neue SID

OregonGhost 16. Aug 2007 14:18

Re: Eindeutige Nr. Weltweit auslesen
 
Ich nehme mal an, wenn du von "kleinem" Kopierschutz redest, kommt eine USB-Dongle-Lösung eher nicht in Frage?

Dezipaitor 16. Aug 2007 17:18

Re: Eindeutige Nr. Weltweit auslesen
 
Zitat:

Zitat von mkinzler
Zitat:

Sind wir schon so weit, dass wir mit Bestimmtheit sagen können, dass er eine GUID meint? Stupid
Er sprach von SID und die SID ist eine GUID. Außerdem hat ein Rechner keine MAC sondern ein Netzwerkinterface. Ein Rechner oder Netzwerkkarte hat also keine MAC-Adresse und einer mit mehreren auch mehrere.

Im eigentlichen Sinne ist SID und GUID etwas unterschiedlich. Sie sind zwar beide theoretisch weltweit eindeutig, jedoch strukturell etwas anders.
SID ist deshalb theoretisch eindeutig, weil sie größenbeschränkt ist (max. 15 Sub-Authoritäten)

Eine eindeutige Nummer wäre ein Hashwert, der quer durch die Hardware und Software geht. Je mehr desto besser.


Meiner Meinung nach ist der beste Kopierschutz, der Schutz über eine online-Verbindung - wenn auch nicht Kundenlieb :D

mkinzler 16. Aug 2007 17:21

Re: Eindeutige Nr. Weltweit auslesen
 
Zitat:

Eine eindeutige Nummer wäre ein Hashwert, der quer durch die Hardware und Software geht. Je mehr desto besser.
Also ein Hash ist das Gegenteil eines eindeutigen Werts, da ein Hash ja nicht ein-eindeutig sind

Dezipaitor 16. Aug 2007 18:08

Re: Eindeutige Nr. Weltweit auslesen
 
Zitat:

Zitat von mkinzler
Zitat:

Eine eindeutige Nummer wäre ein Hashwert, der quer durch die Hardware und Software geht. Je mehr desto besser.
Also ein Hash ist das Gegenteil eines eindeutigen Werts, da ein Hash ja nicht ein-eindeutig sind

Das glaub ich nicht.
Als Eingabe hast du die Menge der HW und SW und kriegst einen Wert, der die HW und SW repränsentiert. Wenn du daran etwas änderst, dann kriegst du einen neuen Wert.
Wenn du die HASH-Funktion, die die Transformation macht, korrekt hinbekommst, dann kannst du den HASH perfekt machen. Damit ist gewährleistet, dass der resultierende Wert eindeutig ist.
Zwei Werte sind dann gleich, wenn zwei PCs wirklich die gleiche HW und SW besitzen.

mkinzler 16. Aug 2007 18:31

Re: Eindeutige Nr. Weltweit auslesen
 
Eine GUID ist ein Wert der im Normalffal nur einmal vergeben wird. Ein Hashwert kann mehrmals vorkommen, da es sich dabei um eine Abbildung von einem in einem anderen wertebereich handelt, wobei der 2. meißt kleiner als der Ausgangswertebereiuch ist.

DGL-luke 16. Aug 2007 18:39

Re: Eindeutige Nr. Weltweit auslesen
 
@MAC-Adresse: Die sind spoofbar. Ich kann jetzt nicht beschwören, dass entsprechende Tools tatsächlich die MAC-Adresse der Netzwerkkarte temporär physisch ändern und nicht nur die IP-Pakete manipulieren, aber ich glaube das geht.

@Hash: Zu einem Hashwert gibt es unendliche viele kollidierende Input-Möglichkeiten! Ist so. Du kriegst heutzutage über Rainbow Tables und andere Dictionary-basierte verfahren zu so gut wie jedem md5-hash innerhalb von Sekunden einen Kollisionsstring.

@GUID: es gibt so viele mögliche GUIDs, dass es extrem unwahrscheinlich ist, zweimal die selbe zu haben. So viel wurde schon gesagt. Trotzdem sollte man immer einberechnen, dass es passieren kann!

Dezipaitor 16. Aug 2007 18:52

Re: Eindeutige Nr. Weltweit auslesen
 
Zitat:

Zitat von mkinzler
Eine GUID ist ein Wert der im Normalffal nur einmal vergeben wird. Ein Hashwert kann mehrmals vorkommen, da es sich dabei um eine Abbildung von einem in einem anderen wertebereich handelt, wobei der 2. meißt kleiner als der Ausgangswertebereiuch ist.

Zitat:

Zitat von DGL-luke
@Hash: Zu einem Hashwert gibt es unendliche viele kollidierende Input-Möglichkeiten! Ist so. Du kriegst heutzutage über Rainbow Tables und andere Dictionary-basierte verfahren zu so gut wie jedem md5-hash innerhalb von Sekunden einen Kollisionsstring.

Aber nur weil die Funktionen nicht perfekt abbilden. Perfekte Abbildung kann man für das Thema vielleicht schwer erreichen, wenn es aber immer möglich wäre das Hashing perfekt hinzubekommen, dann würde man es nur noch verwenden.

Olli 16. Aug 2007 18:54

Re: Eindeutige Nr. Weltweit auslesen
 
Zitat:

Zitat von DeddyH
@s-off: Du musst nicht gleich sauer reagieren, ich wollte ja nur darauf aufmerksam machen, dass die MAC-Adresse, die ja per Spezifikation weltweit eindeutig sein soll, dies in der Praxis nicht unbedingt auch ist. Natürlich geht die Wahrscheinlichkeit, jemals 2 Rechner mit derselben MAC-Adresse zu Gesicht zu bekommen, statistisch gesehen gegen 0.

Abgesehen davon erlauben die meisten NIC-Treiber die MAC-Adresse zu wählen (alternativ kann man auch "fälschen" oder "ändern") sagen.

Das kann sogar treiberunabhängig sein, müßte ich aber nachschauen.

Khabarakh 16. Aug 2007 19:45

Re: Eindeutige Nr. Weltweit auslesen
 
Zitat:

Zitat von Dezipaitor
Aber nur weil die Funktionen nicht perfekt abbilden. Perfekte Abbildung kann man für das Thema vielleicht schwer erreichen, wenn es aber immer möglich wäre das Hashing perfekt hinzubekommen, dann würde man es nur noch verwenden.

Und jetzt erklär uns noch einmal ganz langsam, wie du eine unendlich große Menge von Ausgangswerten bijektiv auf eine endliche Menge von Hashwerten abbilden willst :gruebel: .

Dezipaitor 16. Aug 2007 19:51

Re: Eindeutige Nr. Weltweit auslesen
 
Zitat:

Zitat von Khabarakh
Zitat:

Zitat von Dezipaitor
Aber nur weil die Funktionen nicht perfekt abbilden. Perfekte Abbildung kann man für das Thema vielleicht schwer erreichen, wenn es aber immer möglich wäre das Hashing perfekt hinzubekommen, dann würde man es nur noch verwenden.

Und jetzt erklär uns noch einmal ganz langsam, wie du eine unendlich große Menge von Ausgangswerten bijektiv auf eine endliche Menge von Hashwerten abbilden willst :gruebel: .

Die Menge von HW und SW (Potenzmenge) ist sicher sehr groß, aber auch sicher nicht unendlich. Würden wir mit unendlichen Mengen rechnen müssen, hätten wir echt ein Problem, denn dann müsste zumindest eine Art von HW oder SW Komponente unendlich in der Zahl sein.

Md5 wird doch auch oft für Passwörter eingesetzt und alle vertrauen darauf, dass keine zwei Passwörter denselben Wert ergeben.

DGL-luke 16. Aug 2007 19:54

Re: Eindeutige Nr. Weltweit auslesen
 
Zitat:

Zitat von Olli
Abgesehen davon erlauben die meisten NIC-Treiber die MAC-Adresse zu wählen (alternativ kann man auch "fälschen" oder "ändern") sagen.

Das kann sogar treiberunabhängig sein, müßte ich aber nachschauen.

Sag ich doch... :mrgreen:

mkinzler 16. Aug 2007 20:07

Re: Eindeutige Nr. Weltweit auslesen
 
Zitat:

Md5 wird doch auch oft für Passwörter eingesetzt und alle vertrauen darauf, dass keine zwei Passwörter denselben Wert ergeben.
Es wird aber keine Einzigartigkeit der Wertes orausgesetzt. Außerdem ist in diesem Fall der Hash meistens länger als das Passwort.

Khabarakh 16. Aug 2007 20:34

Re: Eindeutige Nr. Weltweit auslesen
 
Zitat:

Zitat von Dezipaitor
Die Menge von HW und SW (Potenzmenge) ist sicher sehr groß, aber auch sicher nicht unendlich.

Tja, nur ging es darum überhaupt nicht. In beiden von dir zitierten Postings ging es um schnöde Theorie. Rede nächstes Mal einfach vom praxisquasiperfekten HW-SW-Hash und jeder versteht dich ;) . Achja: Sobald die Anzahl der HW-SW-Kombinationen 1,2 * 2^64 =~ 10^19 (128Bit-Hash) übersteigt, hast du selbst mit einer theoretischen perfekten Hashfunktion mit gleichen Ausganswahrscheinlichkeiten zu einer Wahrscheinlichkeit größer 50% eine Kollision. Birthday Attack
Fazit, um mal auf die von dir genannte Potenzmenge zurückzugreifen: Bei einer Anzahl von 65 voll mischbaren HWs/SWs hätten wir in einem perfekt gleichverteilten 128-Bit-Hash zu 50% eine Kollision. Und den absolut perfekten Hash könnten wir mit 129 verschiedenen Geräten/Anwendungen zur Kollision zwingen. Na dann viel Spaß.
Zitat:

Md5 wird doch auch oft für Passwörter eingesetzt und alle vertrauen darauf, dass keine zwei Passwörter denselben Wert ergeben.
Wer heute noch auf MD5 vertraut, muss seine Forensoftware seit 2004 hinter dem Mond entwickelt haben :stupid: .

Dezipaitor 16. Aug 2007 20:53

Re: Eindeutige Nr. Weltweit auslesen
 
Zitat:

Zitat von mkinzler
Zitat:

Md5 wird doch auch oft für Passwörter eingesetzt und alle vertrauen darauf, dass keine zwei Passwörter denselben Wert ergeben.
Es wird aber keine Einzigartigkeit der Wertes vorausgesetzt. Außerdem ist in diesem Fall der Hash meistens länger als das Passwort.

Wenn der errechnete Hashwert nicht eindeutig wäre, dann würde es bedeuten, dass zwei Passwörter denselben Hashwert bekommen. Somit kann man mit einem anderen Passwort ins System. Mit Bruteforce kann man das knacken, es dauert aber eine längere Zeit. Aber das hat nichts mit dem Thema zu tun. Es würde bedeuten, dass man, um einen gleichen Hashwert, eine Menge von Kombinationen von HW und SW ausprobieren müsste. Also viele HW und SW Kombinationen zusammenbauen, den Hashwert davon berechnen und vergleichen.

Eine perfekte Hashfunktion erzeugt keine Kollisionen. Damit sind alle Abbildungen injektiv. Und damit ist jede Eingabemenge eindeutig auf eine Bildmenge abbildbar. Was zum Thema bedeutet, dass man einen Computer eindeutig identifizierbar machen kann, wenn er keinen Zwilling besitzt (in diesem Fall könnte man noch die Zeit, eine Zufallszahl, Elektronenspin oder eine Quantenmessung einbringen).


Machs doch so:
Sammle alle Daten des PCs (oder soviel du willst) und speichere die Informationen in einem String.
Dazu steckst du noch den Benutzername, installierte Programmnamen und was weiß ich.

Den String verschlüsselst du durch die Hashfunktion "Secure Hash Algorithm" (gibts im Inet). Dadurch kriegst du einen Wert,
der den Computer + Benutzer repräsentiert (solange sich dort nichts ändert).

Fertig. Aus. Punkt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:17 Uhr.
Seite 1 von 2  1 2      

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