Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] zapomniane hasło - $haslo = md5( mt_rand ()
herbatniczek
post 22.03.2005, 16:36:08
Post #1





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 12.10.2004

Ostrzeżenie: (0%)
-----


jeśli ktoś zapomni hasła, to u mnie dostaje haso tymczasowe, generowane przez system.

Czy ktoś wie ile możliwości daje $haslo = md5( mt_rand () ); ?
- prosze o przeliczenia linijka pod linijką smile.gif

oto moje przeliczenia, poprawcie je smile.gif

mt_rand() zwraca liczbe od 0 do RAND_MAX (ile to rand_max)? - a więc to jest x liczb powiedzmy.

liczba z mt_rand jest hashowana przez md5 - wychodzi 32 znakowa liczba hexa.
liczb hexa 32 znakowych jest 16^32

czy ilosc wyników to 16^32*RAND_MAX ?
Go to the top of the page
+Quote Post
rogrog
post 22.03.2005, 18:02:48
Post #2





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

Ostrzeżenie: (0%)
-----


wg mnie kombinacji jest <= randmax ale to i tak dużo i dzięki md5 nie do odgadniecia

chociaz moze lepsze bylo by uniqid()


--------------------
Go to the top of the page
+Quote Post
kszychu
post 22.03.2005, 18:11:53
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

Ostrzeżenie: (0%)
-----


I co, jak ktoś zapomni hasła, to generujesz mu takiego potworka? I biedaczysko musi wklepywać ten ciąg znaków? Ile to właściwie ma cyfr?

P.S. Czy zauważyliście, że użyłem samych zdań pytających? laugh.gif


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
nibytak
post 22.03.2005, 18:14:44
Post #4





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 24.01.2005

Ostrzeżenie: (0%)
-----


uda ci sie wygenerowac randmax ciagow, lub randmax + 1 jesli liczyc od zera. nie jestem pewien czy md5() generuje zawsze unikalne wartosci?


--------------------
+++ DISCONNECTED
Go to the top of the page
+Quote Post
rogrog
post 22.03.2005, 19:16:33
Post #5





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

Ostrzeżenie: (0%)
-----


Cytat(nibytak @ 2005-03-22 19:14:44)
uda ci sie wygenerowac randmax ciagow, lub randmax + 1 jesli liczyc od zera. nie jestem pewien czy md5() generuje zawsze unikalne wartosci?

nie zawsze ale kolizje są rzadkie


--------------------
Go to the top of the page
+Quote Post
herbatniczek
post 22.03.2005, 19:30:37
Post #6





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 12.10.2004

Ostrzeżenie: (0%)
-----


więc rand_max

jak lepiej wygenerować hasło?

żeby było w miarę krótkie 16zn i łatwe do odgadnięcia?
Go to the top of the page
+Quote Post
vala
post 22.03.2005, 20:21:52
Post #7





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 12.01.2005

Ostrzeżenie: (0%)
-----


zdeklaruj sobie tablice

Kod
$znaczki=array("a","b","c","d")


nastepnie w petli wybieraj 16 razy znaczek z tablicy(oczywiscie rand ( 0, sizeof($znaczki)) )
potem dodawaj do stringa
zapisuj w md5 do bazy
a reszte na maila
przynajmniej ja to tak widze ? moze jest cos lepszego:)

Ten post edytował vala 22.03.2005, 20:23:52


--------------------
Warsztat: Easy PHP 1.7:Apache 1.3.27|PHP 4.3.3|PHPMYADMIn 2.5.3|MYSQL 4.0.15
Go to the top of the page
+Quote Post
rogrog
post 23.03.2005, 08:57:03
Post #8





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

Ostrzeżenie: (0%)
-----


lepiej wiekszy zestaw znaków ale krótsze - 6 do 8 znaków


--------------------
Go to the top of the page
+Quote Post
jono
post 23.03.2005, 12:58:02
Post #9





Grupa: Zarejestrowani
Postów: 144
Pomógł: 0
Dołączył: 29.06.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Najprostszy i pewny sposób, który daje naprawdę dużo możliości i otrzymujemy hasło łatwe do wpisania:

  1. <?php
  2.  
  3. $haslo = substr(md5(uniqid(rand(), true)), rand(0,27), 5);
  4.  
  5. ?>


Masz pięcioliterowe hasło które jest losowym fragmentem trzydziestodwuznakowego losowego ciągu liter i liczb. Niemożliwe do odgadnięcia.

Ten post edytował jono 23.03.2005, 12:58:33


--------------------
if(function_exists("zrozum_kobiete")){
echo "Niemożliwe!"; exit;}
Go to the top of the page
+Quote Post
Majdan
post 23.03.2005, 13:35:28
Post #10





Grupa: Zarejestrowani
Postów: 445
Pomógł: 0
Dołączył: 21.12.2003
Skąd: Tomaszów Lubelski

Ostrzeżenie: (10%)
X----


Ja często, w podobnych funkcjach używam jeszcze time() dla bezpieczeństwa, aby nie było powtórzeń. biggrin.gif


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 31.07.2025 - 08:24