mccae
Senfdazugeber
Hallo!
Ich habe folgendes Problem:
Ich möchte gerne Strings einlesen und diese vergleichen.
Dazu generiere ich aus den Strings einen MD5 Hash.
Jedoch kommt es vor, dass eine Maschine ein Charset nutzt, welches bestimmte Symbole nicht unterstützt (Seien es Umlaute, chinesische oder gar arabische Zeichen).
Ein Beispiel:
Das Wort "Möbelmann" eingegeben auf einem Windows System ergibt den Hash:
dbe574d5ee57404a616e7e510833391e
Sobald man aber versucht auf Linux so einen Hash zu generieren (mit US-ASCII Zeichensatz), ergibt sich dieser hier:
278255ea1633265c03b816e9f8952f18
Auf dem selben System ergibt eine Modifikation des Sonderzeichens auf ü (Mübelmann) auch:
278255ea1633265c03b816e9f8952f18
Wie kann ich jetzt also für User "Möbelmann" eine einzigartige ID generieren die auf allen Systemen gleich ist und immer gleich sein wird?
So sachen wie die getBytes(String charset) hab' ich schon durchprobiert...
Ach, und falls die Frage kommen soll' worum es eigentlich geht:
Es geht um ein Client Server Szenario bei dem gegenseitig Objekte ausgetauscht werden.
Wenn sich ein User einloggt, wird sein übertragener Username mit einer Serverseitigen UserDB verglichen.
Zuerst habe ich das mit einfachen Strings gemacht, die sind aber auf Systemen mit verschiedenen default Charsets anders.
Deshalb habe ich mich dazu entschieden Hash-Strings zu benutzen, da die Zeichen von 0-9 , A-F ja überall gleich sind (glaub ich zumindest).
Nun will ich wissen, wie ich eine korrekte ID generieren, bzw. einen Hash erzeugen kann. Dabei ist der Datentyp egal.
Kann mir jemand helfen?
mfg
Martin
Ich habe folgendes Problem:
Ich möchte gerne Strings einlesen und diese vergleichen.
Dazu generiere ich aus den Strings einen MD5 Hash.
Jedoch kommt es vor, dass eine Maschine ein Charset nutzt, welches bestimmte Symbole nicht unterstützt (Seien es Umlaute, chinesische oder gar arabische Zeichen).
Ein Beispiel:
Das Wort "Möbelmann" eingegeben auf einem Windows System ergibt den Hash:
dbe574d5ee57404a616e7e510833391e
Sobald man aber versucht auf Linux so einen Hash zu generieren (mit US-ASCII Zeichensatz), ergibt sich dieser hier:
278255ea1633265c03b816e9f8952f18
Auf dem selben System ergibt eine Modifikation des Sonderzeichens auf ü (Mübelmann) auch:
278255ea1633265c03b816e9f8952f18
Wie kann ich jetzt also für User "Möbelmann" eine einzigartige ID generieren die auf allen Systemen gleich ist und immer gleich sein wird?
So sachen wie die getBytes(String charset) hab' ich schon durchprobiert...
Ach, und falls die Frage kommen soll' worum es eigentlich geht:
Es geht um ein Client Server Szenario bei dem gegenseitig Objekte ausgetauscht werden.
Wenn sich ein User einloggt, wird sein übertragener Username mit einer Serverseitigen UserDB verglichen.
Zuerst habe ich das mit einfachen Strings gemacht, die sind aber auf Systemen mit verschiedenen default Charsets anders.
Deshalb habe ich mich dazu entschieden Hash-Strings zu benutzen, da die Zeichen von 0-9 , A-F ja überall gleich sind (glaub ich zumindest).
Nun will ich wissen, wie ich eine korrekte ID generieren, bzw. einen Hash erzeugen kann. Dabei ist der Datentyp egal.
Kann mir jemand helfen?
mfg
Martin
Zuletzt bearbeitet: