//GUID oder andere UUID Lib gesucht [plattformunabh.!!!]



  • gibt es irgendeine plattformunabhängige Lib diesbezüglich?



  • Ja, PoCo



  • auch ne etwas kleinere?



  • Was soll eine "GUID Lib" sein? Also was soll sie können?

    Compare: memcmp. Copy: memcpy. Generieren von passenden GUIDs: guck mal in der Boost, da müsste es einen wrapper für /dev/(u)random bzw. CryptGenRandom geben.
    Evtl. holst du dir da 128 Byte Zufallsdaten oder so, und rechnest nachher einfach ne MD5 (crypto++, ...) drüber -> GUID.

    Was soll sie sonst noch können? Als String Formatieren? -> sprintf/stringstream/boost::format.
    Sonst nocht was?



  • genau, lediglich ne zufallsnummer erzeugen 😉



  • hustbaer schrieb:

    da müsste es einen wrapper für /dev/(u)random bzw. CryptGenRandom geben.

    GUIDs sind aber eben gerade *nicht* zufällig.



  • Sollte nicht ein Hash-Wert auch funktionieren? Müsste man eben nur schauen aus was man den generiert. Ne GUID ist doch eigentlich fast ein Hash-Wert.



  • Konrad Rudolph schrieb:

    hustbaer schrieb:

    da müsste es einen wrapper für /dev/(u)random bzw. CryptGenRandom geben.

    GUIDs sind aber eben gerade *nicht* zufällig.

    Früher (UUID version 1) waren sie es nicht ganz, heute zu einem großen Teil (UUID version 4) schon, aber teilweise denkt man sich auch einen Text aus und geht mit einem SHA-1 Hashing-Algorithmus drüber (UUID version 5).

    Siehe RFC 4122



  • muffmolch schrieb:

    gibt es irgendeine plattformunabhängige Lib diesbezüglich?

    Unter der Boost Vault (uuid_v10.zip) habe ich entsprechendes gesehen, wobei ich nicht den aktuellen Status weiß. Der Status der Einzelbibliotheken ist mir bei Boost teilweise ein Rätsel. Aber das scheint bei nahezu allen Bibliotheken die ich aktuell suche der Fall zu sein (Wie ist z.B. der Status von SOCI?)...

    cu André



  • Konrad Rudolph schrieb:

    hustbaer schrieb:

    da müsste es einen wrapper für /dev/(u)random bzw. CryptGenRandom geben.

    GUIDs sind aber eben gerade *nicht* zufällig.

    Ups, ja. Verdammt. Was ich am dringensten bräuchte wäre eine Abbildung eines Strings auf eine eindeutige ID, die für gleiche Strings dasselbe Ergebnis liefert. Aber eben mit der niedrigst möglichen Kollsionswahrscheinlichkeit!

    -> optimal wäre demnach GUIDs für uns (UUIDs bräuchten wir auch, aber an einer anderen Stelle und nicht so dringend).



  • muffmolch schrieb:

    Okay. Also optimal wäre demnach GUIDs für uns (UUIDs bräuchten wir auch, aber an einer anderen Stelle und nicht so dringend).

    Ist GUID nicht einfach UUID von Microsoft?

    <a href= schrieb:

    http://de.wikipedia.org/wiki/Guid">GUID stellt eine Implementierung des Universally Unique Identifier-Standards (UUID) dar.



  • okay. heute ist nicht mein Tag.
    Daher nochmal:

    Was ich am dringensten bräuchte wäre eine Abbildung eines Strings auf eine eindeutige ID, die für gleiche Strings dasselbe Ergebnis liefert. Aber eben mit der niedrigst möglichen Kollsionswahrscheinlichkeit...



  • muffmolch schrieb:

    Was ich am dringensten bräuchte wäre eine Abbildung eines Strings auf eine eindeutige ID, die für gleiche Strings dasselbe Ergebnis liefert. Aber eben mit der niedrigst möglichen Kollsionswahrscheinlichkeit...

    Du suchst also einen hash?



  • muffmolch schrieb:

    okay. heute ist nicht mein Tag.
    Daher nochmal:

    Was ich am dringensten bräuchte wäre eine Abbildung eines Strings auf eine eindeutige ID, die für gleiche Strings dasselbe Ergebnis liefert. Aber eben mit der niedrigst möglichen Kollsionswahrscheinlichkeit...

    Nimm halt einfach SHA-256. Oder SHA-512 wenn du voll-paranoid bist 😉 Oder RIPEMD-320 wenn du was gegen die NSA hast.

    Vonwegen Implementierung verweise ich dich wiedermal zum Eskimo: http://www.cryptopp.com/

    Wenn du einen schnellen Hashcode suchst nimm einfach MD5, schnellste wo gibt, und was zufällige Kollisionen angeht IMO ausreichend sicher. Wenn es natürlich jmd. drauf anlegt eine Kollision zu basteln ist das mit MD5 relativ einfach möglich. Dann wirklich lieber irgendeine SHA.



  • danke huestbaer, werde ich machen


Anmelden zum Antworten