Projektowanie stron WWW od podszewki

Artykuły na każdy temat

[PHP] Generator losowych haseł

Dodano 29.08.2011r. o 01:12
Jak wiemy co jakiś czas hasła do kont, które posiadamy w sieci powinny być zmieniane. Ponieważ ostatnio mnie naszła refleksja i nie chciało mi się na pałę wystukiwać "losowych" znaków to pomyślałem sobie, że napiszę maluteńki generator Wink Z tego co pamiętam to bezpiecznie jest zmieniać hasło co jakiś czasu (sugeruję co jeden miesiąc). Do czego może nam się to przydać? Odpowiednio przerabiając ten skrypt można go zastosować w większości serwisów, które udostępniają możliwość rejestrowania kont. Mam na myśli np. resetowanie hasła po akceptacji linka, który przyszedł w mailu do użytkownika.

Wyjaśnienie

Właściwie trzeba wyjaśnić tylko jedną rzecz. Jak ugryźć tablicę $config['mode']? Jeżeli klucz z numerem 0 zwraca prawdę to do zestawu znaków dodawane są liczby. W przypadku 1 są to znaki specjalne. Ostatnie dwa klucze odpowiadają za małe (2) i duże litery (3).
Kod:
<?php
// Konfiguracja
$config['mode'] = array(truetruetruetrue); // Fajna tablica, nie?
$config['length'] = 8;
// Alfabet
$letters 'abcdefghijklmnopqrstuvwxyz';

// Liczby
if($config['mode'][0])
{
 $values '0123456789'// Można użyć tego: implode('', range(0, 9));
}

// Znaki specjalne
if($config['mode'][1])
{
 $values .= '`~!@#$%^&*()_-=+<>?,.|\/\'";:[]{}';
}

// Małe litery
if($config['mode'][2])
{
 $values .= $letters;
}

// Duże litery
if($config['mode'][3])
{
 $values .= strtoupper($letters);
}

for($h 0$length = (strlen($values) - 1); $h $config['length']; ++$h)
{
 $random_symbols .= substr($valuesmt_rand(0$length), 1);
}

echo 'Losowe hasło na teraz brzmi: <pre>'.htmlspecialchars($random_symbols).'</pre>';
?>
Osoby, które chcą przetestować cały skrypt zapraszam do dema. Aha i bym zapomniał! Lekką modyfikację tego kodu można znaleźć w tym wątku.

Komentarze

Publikowane komentarze są prywatnymi opiniami użytkowników serwisu. Serwis nie ponosi odpowiedzialności za treść opinii. W trosce o zachowanie poziomu dyskusji wszystkie komentarze podlegają akceptacji przed ich publikacją dlatego proszę cierpliwie czekać aż komentarz zostanie opublikowany.

pomek

Dodano 25.08.2012r. o 20:36
bede drobiazgowy ;) jesli wylaczymy cyfry to skrypt walnie warringiem Smile

CapaciousCore

Dodano 04.07.2012r. o 12:44
@fortowiec225 dodałem htmlspecialchars() dla "dema", bo inaczej w pre byłyby krzaczki Razz

fortowiec225

Dodano 04.07.2012r. o 09:34
Widzę, że pomyślałeś o htmlspecialchars Razz

Rafi

Dodano 27.10.2011r. o 00:01
Dla tych co chcą wygenerować hasło dla siebie polecam dobrehaslo.pl.

Dodaj komentarz

Zostaw komentarz jeżeli możesz! Nie bądź przysłowiowym botem! Nie bądź obojętny! Ciebie to nic nie kosztuje, a mi sprawi uśmiech na twarzy.
Zezwolono używać: BBCode
Zabroniono używać:
znaczników HTML

(Wymagany)

(Wymagany, niepublikowany)

(Nie wymagana)

Token:

Obrazek dla bota

(Przepisz tylko cyfry!)

(Wymagana)