Frage

Ich arbeite an einem Projekt, wo ich brauche etwas Hash-Funktion zu verwenden, um ein Hash-String zu machen. Dieser Hash-String sollte besteht aus 6 bis 13 Zeichen (feste Länge) eindeutig sein.

Ich habe eine Datenbank zum Speichern von Daten verwendet werden, so dass für jeden Datensatz, habe ich eine eindeutige ID. Ich mag diese eindeutige ID verwenden, um ein Hash-String zu machen (Eindeutigkeit der Folge Hash-String zu erreichen).

ich brauche diese Zeichenfolge Hash besteht aus nur gültigen Zeichen (0-9 a-zA-Z).

Welche Hash-Funktion soll ich dieses Ziel zu erreichen benutzen? Wie kann ich eine solche Hash-Strings generieren?

später hinzugefügt: Ich mag diese Zeichenfolge generieren und an Benutzer weitergeben, so dass er den Eintrag später wieder zu bearbeiten kommen kann. andere Idee ist akzeptabel.

War es hilfreich?

Lösung

Mit Krypta:

$hash = crypt("somevaluetohash", $uniqueid);

Die eindeutige ID ist ein Salz, so dass Sie unterschiedliche Werte in Abhängigkeit von der id erzeugen können. Also, wenn ein Benutzer ein Passwort von „somevaluetohash“ hatte und ein anderer Benutzer hatte die gleichen, die Endung Hash würde nicht die gleiche sein.

Andere Tipps

<?php
  $id;
  $hash_full = md5($id); //hash('sha256', $id);
  $hash_cropped = substr($hash_full, 0, 6);
?>

Verwenden Sie Hash () für andere Hash-Algorithmen.

Aber was brauchen Sie dieses Hashes für? Für mich ist es nicht viel Sinn, einen Hash aus der ID zu erzeugen, könnte man nicht nur die ID verwenden stattdessen?

Ist es wirklich braucht eine kryptografische Prüfsumme sein? Oder ist eine einfachere Prüfsumme geeignet? Ist die Datenbank bereitgestellte Primärschlüssel selbst nicht geeignet?

Sie haben viele Möglichkeiten bekommen, von der einfachsten crc32 am meisten fortgeschrittene sha512 .

Aber wenn Sie tun dies für einige spezifische Anwendung (wie Dateisystem-Hashing oder in der Nähe mit einigen Metriken) Objekte zu finden, dann sind Sie gehen zu müssen, mehr Ihr Problems angeben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top