Javascript – Wie man aus einem String einen Hash generiert
Wir zeigen eine Möglichkeit, wie man mit Javascript aus einem String einen Hash generieren kann. Wie immer nur die erstbesten Lösungen.
Wenn man aus einer Zeichenkette Zahl generieren möchte, die diese eindeutig representiert, kann man sich einer Hashfunktion bedienen.
In Javascript gibt es standardmäßig keine Hashfunktion für Zeichenketten, man könnte aber auf die Java Methode String.HasCode() zurückgreifen und diese in Javascript implementieren. Das sähe dann so aus:
String.prototype.hashCode = function(){ var hash = 0; if (this.length == 0) return hash; for (i = 0; i < this.length; i++) { char = this.charCodeAt(i); hash = ((hash<<5)-hash)+char; hash = hash & hash; // Convert to 32bit integer } return hash; }
Man kann natürlich auch eine reguläre Funktion implementieren. Hier ein Beispiel:
hashCode = (s) => { return s.split('').reduce( (a, b) => { a = (( a << 5 ) - a ) + b.charCodeAt(0); return a & a; }, 0); }
Hier kann man sich das noch mal in einem Fiddle ansehen: Zum Fiddle
Ich hoffe wie immer, diese erstbeste Lösung war hilfreich.
Sie sehen gerade einen Platzhalterinhalt von X. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr Informationen