Jak wygenerować niepowtarzalny identyfikator użytkownika, PHP Skrypty


[PHP] Jak wygenerować niepowtarzalny identyfikator użytkownika?

0x01 graphic

Chcesz uzyskać unikalny identyfikator w postaci łańcucha znaków, który nie może się nigdy powtórzyć. Przydaje się często jako identyfikator sesji, klucz w bazie danych lub unikalny kod np. do odebrania kartki z życzeniami.

0x01 graphic

Unikalny identyfikator można wygenerować na wiele sposób, ale najbezpieczniej jest skorzystać z następującej konstrukcji:

<?

srand((double)microtime()*1000000);

$id = md5(uniqid(rand()));

echo $id;

?>

W wyniku otrzymasz 32 zupełnie przypadkowe znaki, np.

0ac2a496294d03d43b04f2783337d32c

Pierwsza linijka kodu inicjuje generator liczb losowych. Liczby losowe będą nam potrzebna do wygenerowania przypadkowego łańcucha znaków.

Teraz budujemy wyrażenie, którego celem jest stworzenie niepowtarzalnego ciągu znaków. Sama funkcja uniqid("") generuje niepowtarzalny ciąg znaków, jednak istnieje prawdopodobieństwo, że dwie osoby na dwóch różnych komputerach (gdy nasz system składa się z wielu maszyn) mogą wygenerować w tej samej mikrosekundzie ten sam ciąg znaków.

Dla bezpieczeństwa dodana została funkcja rand() generująca dodatkową, przypadkową liczbę. Teraz nasz identyfikator składa się z dwóch ciągów: - przypadkowej liczby i unikalnego łańcucha znaków. Całość została "potraktowana" jeszcze funkcją mieszającą md5(), która jest 128 bitowym znacznikiem bazującym na podanym ciągu znaków co dodatkowo gwarantuje kolejną niepowtarzalność znaków.

Podany przykład jest bardzo mocny i uzyskanie dwóch identycznych ciągów znaków jest praktycznie niemożliwe.

Do prostych zastosowań w zupełności wystarczy funkcja uniqid("") generująca identyfikator zależny od czasu systemowego.

<?

$id = uniqid("");

echo $id;

?>



Wyszukiwarka

Podobne podstrony:
Jak zrobić stronę dostępną na hasło tylko dla wybranych użytkowników, PHP Skrypty
Jak uzyskać IP lub domenę z jakiej łączy się użytkownik, PHP Skrypty
Jak zrobić stronę dostępną na hasło tylko dla wybranych użytkowników, PHP Skrypty
Jak przerwać wykonywanie pętli (for, PHP Skrypty
jak przeliczyc biorytm dowolnego dnia, PHP Skrypty
Jak usunąć znaki końca linii, PHP Skrypty
Jak stworzyć prostą księgę gości, PHP Skrypty
Jak zamienić tekst na grafikę, PHP Skrypty
Jak dołączyć do stron napisanych w PHP skrypty CGI napisane np. w PERLu, PHP Skrypty
Jak zainstalować popularne forum phpBB, PHP Skrypty
Jak przerwać wykonywanie pętli (for, PHP Skrypty
Jak wygenerować bezpieczne, PHP Skrypty
Jak sprawdzić czy istnieje podany użytkownik i jego hasło jest poprawne, PHP Skrypty
Jak wygenerować statyczny plik .html z bazy danych, PHP Skrypty
jak logowac unikatowe numery IP uzytkownikow z calego dnia, PHP Skrypty
Jak wygenerować bezpieczne, PHP Skrypty
Jak wysłać ze strony WWW e-mail z dowolnym załącznikiem, PHP Skrypty
Jak stworzyć prostą wyszukiwarkę dla własnych stron WWW, PHP Skrypty
Jak stworzyć zaawansowany test wyboru lub quiz, PHP Skrypty

więcej podobnych podstron