Loading:

Książka Zend Framework 3. Poradnik Programisty.

Generowanie hasła

Witam serdecznie. W tym artykule pokaże Wam jak napisać aplikację, która będzie generowała hasło. Co będzie ją wyróżniało? To, że my decydujemy, z jakich zasobów ma ona korzystać. Generator, może być wykorzystywany wielokrotnie, dlatego napiszemy go sobie w postaci funkcji.

 

Funkcja ta będzie przyjmowała jeden parametr - długość hasła.

 

function passwordGenerator($length)

 

Następnie utworzymy tablice, które będą przechowywać znaki, które mogą zostać użyte w haśle (można dodawać własne):

 

$uppercase = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'W', 'Y', 'Z');

$lowercase = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'w', 'y', 'z');

$number = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);

 

Teraz musimy utworzyć zmienną, odpowiadającą, za przechowywanie hasła, do którego będziemy dopisywać poszczególne znaki i na końcu je zwrócimy. Słowo kluczowe NULL oznacza nic, czyli równie dobrze moglibyśmy napisać $password = '';

 

$password = NULL;

 

Głowna część programu, czyli pętla uzupełniająca nasze hasło, jako warunek dałem długość podaną jako parametr (żebyśmy mieli pewność, że hasło nie będzie za krótkie), ale zauważcie, że co każdy obrót pętli generują się 3 znaki (bo są 3 tablice w tym przypadku) więc tak, czy tak na końcu będziemy musieli ten ciąg "obciąć".

 

Losowanie znaków z tablic przebiega w ten sposób, że do zmiennej przechowującej hasło dopisywany jest losowy indeks konkretnej tablicy, a samo losowanie indeksów polega na losowaniu liczb od 0 do ostatniego indeksu tablicy (dzięki funkcji count() wiemy, ile elementów ma tablica) i na końcu odjęciu jednego elementu, ponieważ liczymy od 0.

 

for ($i = 0; $i < $length; $i++) {

$password .= $uppercase[rand(0, count($uppercase) - 1)];

$password .= $lowercase[rand(0, count($lowercase) - 1)];

$password .= $number[rand(0, count($number) - 1)];

}

 

Przed nami finał, zostało tylko skrócić hasło do długości podanej jako parametr funkcji, dokonamy tego za pomocą funkcji substr(). Od razu skrócony ciąg znaków zwrócimy.

 

return substr($password, 0, $length);

 

I to wszystko, teraz możemy sobie nasze hasło np. przypisać do zmiennej:

 

$myPassword = passwordGenerator(8);

echo '<p>Moje wygenerowane hasło: <strong>' . $myPassword . '</strong></p>' . "\n";

 

Efekt: Moje wygenerowane hasł‚o: Al6Do0Wp

 

To na tyle w tym artykule, dziękuję za uwagę i pozdrawiam.



Napisz Artykuł

Listing

<?php

function passwordGenerator($length) {
    $uppercase = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'W', 'Y', 'Z');
    $lowercase = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'w', 'y', 'z');
    $number = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);

    $password = NULL;

    for ($i = 0; $i < $length; $i++) {
        $password .= $uppercase[rand(0, count($uppercase) - 1)];
        $password .= $lowercase[rand(0, count($lowercase) - 1)];
        $password .= $number[rand(0, count($number) - 1)];
    }

    return substr($password, 0, $length);
}

$myPassword = passwordGenerator(8);
echo '<p>Moje wygenerowane hasło: <strong>' . $myPassword . '</strong></p>' . "\n"

?>


Ten wpis posiada swój wątek na forum

Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane

http://forum.funkcje.net/forum/viewtopic.php?f=2&t=5834

Dane do logowania na forum są takie same jak na funkcje.net



Dodano przez: lukaaspl Ranga: Poziom 7 Punktów: 200
Komentarze użytkowników
    • Treść komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-17 v.1.5 | design: diviXdesign & rainbowcolors