如何根据月份名称生成随机密码?

时间:2019-01-12 15:32:49

标签: php random passwords

我想根据月度名称生成一个随机密码,该函数应该从alphabet中选择A to Z并将其放置到生成的随机密码的第5位?

问题

我对如何根据$alphabet选择January的第一个字母并将其放置在生成的随机密码的第5位感到有些困惑?

例如,如果当前月份为一月

如果当前月份为一月,则该函数应从中选择A     $alphabet并放在随机密码的第5位     产生了吗?

例如,如果当前月份为2月

如果当前月份为2月,则该函数应从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 :(得分:0)

要执行此操作,您只需跟踪月份并使用它来获取let search = stringFromSearchBar let eventResults = realm.objects(AllEventClass.self).filter("clientName contains[cd] %@ or date contains[cd] %@ or occassions contains[cd] %@", search, search, search) 字符串的第n个字符。然后,您可以在$alphabet最终密码之前用它替换$pass数组的第五个元素。

implode()

Demo

这是一种生成随机密码的更简洁的方法:

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();

Demo

请记住,这些密码很短且是伪随机的,并且不太安全。