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.

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert