Как мне сгенерировать случайный пароль на основе названий месяцев? - PullRequest
0 голосов
/ 12 января 2019

Я хочу сгенерировать случайный пароль на основе месячных имен, функция должна выбрать alphabet из A to Z и поместить на 5-ю позицию сгенерированного случайного пароля?

Задача

Я немного озадачен тем, как выбрать первую букву $alphabet на January и поставить на 5-ю позицию сгенерированного случайного пароля?

Например, если текущий месяц январь

если текущий месяц январь, то функция должна выбрать A из $alphabet и поместите на 5-ю позицию случайного пароля генерируется?

Например, если текущий месяц февраль

если текущий месяц февраль, то функция должна выбрать B из $alphabet и поместите на 5-ю позицию случайного пароля сгенерировано

PHP-код

function randomPassword() {
$currentmonth = date('F');


if($currentmonth == 'January'){
$alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ";    
$random = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789";
$pass = array();    

     $alphaLength = strlen($random) - 1; 
    for ($i = 0; $i < 5; $i++) {
        $n = rand(0, $alphaLength);
        $pass[] = $random[$n];
    }

   return implode($pass); 

} 
}
echo randomPassword();

1 Ответ

0 голосов
/ 12 января 2019

Для этого все, что вам нужно, это отслеживать месяц и использовать его для получения n-го символа вашей строки $alphabet. Затем вы можете просто заменить пятый элемент массива $pass на него, прежде чем implode() окончательный пароль.

function randomPassword() {
    $currentmonth = date('n');
    $alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ";    
    $random = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789";
    $pass = array();    

    $alphaLength = strlen($random) - 1; 
    for ($i = 0; $i < 5; $i++) {
          $n = rand(0, $alphaLength);
          $pass[] = $random[$n];
    }
    $pass[4] = substr($alphabet, $currentmonth - 1, 1);

    return implode($pass); 

}
echo randomPassword();

Демо

Вот более краткий способ создания случайного пароля:

function randomPassword() {
    $currentmonth = date('n') - 1;
    $alphabet = "abcdefghijklm";
    $random_hash = substr(md5(uniqid(rand(), true)), 28, 4);
    return $random_hash . substr($alphabet, $currentmonth, 1);
}
echo randomPassword();

Демо

Имейте в виду, что эти пароли короткие и псевдослучайные и не очень надежные.

...