[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

コメント投稿フォーム