fedora 12 best templates
使用例
//パスワード生成クラス読み込み
require_once ‘My/Password.php’;
//デフォルトは8桁のパスワードが生成されます
$password = My_Password::getPassword();
var_dump($password);
//『32桁、小文字英字のみ』のパスワード生成
$password = My_Password::getPassword(32, ‘small’);
var_dump($password);
出力結果は以下のようになります。
string(8) “txRC4hLX”
string(32) “zcyhuypsvbjgrfiacxrfhwusuiuulllb”
説明
int $lenght
パスワードの桁数 (デフォルト 8桁 )
string $mode
文字列の種類を指定 (デフォルト 大小文字英数字 )
small – 小文字英字
large – 大文字英字
smallalnum – 小文字英数字
largealnum – 大文字英数字
num – 数字
alphabet 大小文字英字
alnum – 大小文字英数字
パスワード生成クラスMy_Passwordソース
class My_password
{
/**
* ファイル名・ユニークID・パスワード生成
*
* @param integer $length 文字列長 default:8 (1-256)
* @param string $mode モード default:’alnum’
* @return array
*/
public static function getPassword($length = 8, $mode = ‘alnum’)
{
if ($length < 1 || $length > 256) {
return false;
}
$smallAlphabet = ‘abcdefghijklmnopqrstuvwxyz’;
$largeAlphabet = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’;
$numeric = ‘0123456789’;
switch ($mode) {
// 小文字英字
case ‘small’:
$chars = $smallAlphabet;
break;
// 大文字英字
case ‘large’:
$chars = $largeAlphabet;
break;
// 小文字英数字
case ‘smallalnum’:
$chars = $smallAlphabet . $numeric;
break;
// 大文字英数字
case ‘largealnum’:
$chars = $largeAlphabet . $numeric;
break;
// 数字
case ‘num’:
$chars = $numeric;
break;
// 大小文字英字
case ‘alphabet’:
$chars = $smallAlphabet . $largeAlphabet;
break;
// 大小文字英数字
case ‘alnum’:
default:
$chars = $smallAlphabet . $largeAlphabet . $numeric;
break;
}
$charsLength = strlen($chars);
$password = ”;
for ($i = 0; $i < $length; $i++) {
$num = mt_rand(0, $charsLength - 1);
$password .= $chars{$num};
}
return $password;
}
}
また、PEARにも類似のライブラリがありますのでこちらもご参考下さい。
http://pear.php.net/package/Text_Password
参照元:http://www.plusmb.jp/2009/02/06/2439.html
この投稿へのコメント
コメントはまだありません。