2009-11-10 39 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

,我只想问什么&手段?这是合乎逻辑的AND他忘了添加另一个&?

回答

3

这是bitwise和运算符。

+0

不能相信我错过了,TY! – lemon 2009-11-10 01:16:21

7

不,这是一个bitwise and。正在使用的强度是flags,对于每个位集,辅音都会获得一组连续的字符。