ランダムパスワード生成
ランダムなパスワードを生成するモジュール
PHP
/**
*
* ランダムパスワード生成
*
* @param boolean $u_alpha_flg
* @param boolean $num_flg
* @param boolean $symbol_flg
* @param integer $length
* @return string
*/
function getPassword($u_alpha_flg = TRUE, $num_flg = TRUE, $symbol_flg = FALSE, $length = 8)
{
// 文字列(l/1/I,o/0/O,q/9を除外するならarrayを使用)
// a~z
$l_alpha = range('a', 'z');
// $l_alpha = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'm', 'n', 'p', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z');
// A~Z
$u_alpha = range('A', 'Z');
// $u_alpha = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
// 0~9
$num = range('0', '9');
// $num = array('2', '3', '4', '5', '6', '7', '8');
$symbol = array('-', '_');
// パスワードに含む文字列を絞り込み
if (! $u_alpha_flg) {
$u_alpha = array();
}
if (! $num_flg) {
$num = array();
}
if (! $symbol_flg) {
$symbol = array();
}
// 文字列をマージ
$char = array_merge($l_alpha, $u_alpha, $num, $symbol);
mt_srand((double)microtime() * 1000000);
// 指定桁数のパスワード生成
$str = "";
for ($i = 0; $i < $length; $i++) {
$str = $str . $char[rand(0, count($char)-1)];
}
return $str;
}
サンプル
このページ以降に紹介するPHPのリファレンスはクラス形式ではなく単純なメソッド形式で紹介していますが、実際に使うときはクラス形式にしていますよ。