アプリのランダムパスワード(0-9a-zA-Z のみ)PHP
を生成する関数を記述しました。結果として得られるパスワードは、暗号で保護され、可能な限りランダムでなければなりません。つまり、パスワードは重要です。
私がやっている大きなトリックは$possible
毎回キャラクターをシャッフルmt_rand()
することです。
機能に推奨される変更やセキュリティの問題はありますか? openssl_random_pseudo_bytes()
代わりに使用mt_rand()
すると、アルゴリズムがより強力で安全になりますか?
public function generate_random($length = 15) {
$random = "";
$possible = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$possible = str_shuffle($possible);
$maxlength = strlen($possible);
if ($length > $maxlength) {
$length = $maxlength;
}
$i = 0;
while ($i < $length) {
$random .= substr($possible, mt_rand(0, $maxlength-1), 1);
$i++;
}
return $random;
}
ありがとう。