[PHP] パスワード自動生成クラス
パスワードを自動生成するクラスを作成した。
パスワードリマインダー機能などで使用する。
使い方
①パスワード生成を行いたいソースの中で auth.php をインクルードする。
②クラスのインスタンスを生成する。
③create メソッドを call する。引数でパスワードの桁数を指定することができる。
桁数の指定が無い場合は、8桁のパスワードが生成される。
<?php
// ①インクルード
require_once( 'auth.php' );
// ②インスタンス生成
$authCls = auth::getSingleton();
// ③10桁のパスワード作成(引数に桁数を指定する)
$pw = $authCls -> create(10);
?>
ソース
<?php
// --------------------------------------------------------------------
// Author : mashimonator
// Create : 2009/01/16
// Update : 2009/01/16
// Description : パスワードを生成する
// --------------------------------------------------------------------
class auth {
var $sPwChars = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
var $cPwChars = array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
var $nPwChars = array(0,1,2,3,4,5,6,7,8,9,0);
/*
* シングルトン
*/
function &getSingleton() {
static $obj;
if ( is_null($obj) ) {
$obj = new auth();
}
return $obj;
}
/*
* パスワード生成
*/
function create( $pwLength = 8 ) {
$pw = '';
for ( $i=0; $i<$pwLength; $i++ ) {
$pw = $pw . $this -> putChar();
}
return $pw;
}
/*
* ランダムな文字を返す
*/
function putChar() {
$idx1 = 0;
$idx2 = 0;
$pwChars = array(
0 => $this -> sPwChars,
1 => $this -> cPwChars,
2 => $this -> nPwChars
);
mt_srand((double)microtime()*1000000); // PHP 3.0.6 >= ver < PHP 4.2.0
$idx1 =mt_rand(0,2);
if ($idx1 == 2) {
$idx2 = mt_rand(0,10);
} else {
$idx2 = mt_rand(0,25);
}
return $pwChars[$idx1][$idx2];
}
}
?>
トラックバックURL
http://mashimonator.weblike.jp/mt/mt-tb.cgi/34
コメント投稿フォーム