2009-11-10 2 views
0

Я искал сеть для генератора случайных паролей, и я пришел через этот кодPHP & Условный

<?php 

function generatePassword($length=9, $strength=0) { 
    $vowels = 'aeuy'; 
    $consonants = 'bdghjmnpqrstvz'; 
    if ($strength & 1) { 
     $consonants .= 'BDGHJLMNPQRSTVWXZ'; 
    } 
    if ($strength & 2) { 
     $vowels .= "AEUY"; 
    } 
    if ($strength & 4) { 
     $consonants .= '23456789'; 
    } 
    if ($strength & 8) { 
     $consonants .= '@#$%'; 
    } 

    $password = ''; 
    $alt = time() % 2; 
    for ($i = 0; $i < $length; $i++) { 
     if ($alt == 1) { 
      $password .= $consonants[(rand() % strlen($consonants))]; 
      $alt = 0; 
     } else { 
      $password .= $vowels[(rand() % strlen($vowels))]; 
      $alt = 1; 
     } 
    } 
    return $password; 
} 

?> 

из http://www.webtoolkit.info/php-random-password-generator.html

, и я просто хотел бы спросить, какие & средства? Это логично, и он просто забыл добавить еще &?

ответ

3

Это bitwise и оператор.

+0

Не могу поверить, что я пропустил это, ТЫ! – lemon

7

Нет, это bitwise and. Сила используется как flags, для каждого набора бит согласные получают дополнительный набор символов, соединенных с ним.

2

Единственный оператор «&» является поразменным и. Он И-сила $ с двоичным представлением 1, 2, 4, а затем 8.