0

ネットでランダムパスワードジェネレーターを検索していたところ、このコードに出くわしました

<?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 ですか? 彼は別の & を追加するのを忘れましたか?

4

3 に答える 3

7

いいえ、それはビットごとの andです。強さはflagsとして使用されています。各ビット セットに対して、子音はそれに連結された追加の文字セットを取得します。

于 2009-11-10T01:06:30.530 に答える
3

これは、ビットごとのand 演算子です。

于 2009-11-10T01:06:12.560 に答える
2

単一の「&」演算子は、ビット単位の and です。彼は $strength を 1、2、4、8 の 2 進数表現で AND 演算しています。

于 2009-11-10T01:06:31.343 に答える