2015-09-18 32 views
6

Muszę wygenerować unikatowy hash - może z timestamp. hasz musi mieć maksymalnie 8 znaków. Jak to zrobić?Jak wygenerować hash z timestamp?

Na razie mam tylko timestamp:

var t = new Date().getTime(); 
+0

Będziesz musiał użyć biblioteki do wygenerowania hasza. Możesz spróbować: https://code.google.com/p/crypto-js/ – Vivek

+0

[Pokrewne: Wygeneruj 8-znakowy skrót z liczby całkowitej] (http://stackoverflow.com/questions/2520794/php- generate-an-8-character-hash-from-an-integer) – usandfriends

+0

możliwy duplikat [Utwórz GUID/UUID w JavaScript?] (http://stackoverflow.com/questions/105034/create-guid-uuid-in- javascript) – Limnic

Odpowiedz

17

To może wyglądać śmiesznie, ale następujący kod może działać dobrze przez kilka następnych stuleci :)

(+new Date).toString(36); // "iepii89m" 

potem można rozszerzyć ją metoda krojenia: (+new Date).toString(36).slice(-8).

+1

A jeśli chcesz zminimalizować możliwość kolizji, możesz spróbować tego: '((+ nowa data) + Math.random() * 100) .toString (32)' –

+1

@DanielSokolowski Dlaczego miałoby to pomóc w minimalizowaniu możliwość kolizji? Twierdzę, że jest dokładnie odwrotnie. – Michal