phpで作る!パスワード作成に使えるランダムな文字列

pay-937882

まずはphpでランダムに文字を選び文字列を作成する方法です。

パスワード作成に使えるランダムな文字列を生成するには、まず表示候補の文字の配列を用意します。

$sml=array("a","b","c","d","e","f","g","h","i","j","e","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
$big=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");
$suj=array("0","1","2","3","4","5","6","7","8","9");

これらはアルファベットの小文字と大文字、そして数字を文字として持たせた配列です。

分けてあるのは、後で「アルファベットの小文字と数字だけ」とか「アルファベットだけ」とかのように分離させる機能を持たせる為です。

ですから、これらを最初に結合させる必要があります。

$lists=array();
$lists=array_merge($sml,$big);
$lists=array_merge($lists,$suj);

array_mergeは配列と配列を結合させる命令です。
最初のarray()で配列を初期化し、次のarray_merge()でアルファベットの小文字と大文字を結合、そしてそれと数字を結合させます。

これで$listsに必要な情報は入りました。

最後にランダムで必要な文字数だけ表示させる命令を書きます。

$m=count($lists);
$datas="";
$n=10;
if($m!=0)
{
	for($i=0;$i<$n;$i++)
	{
		$datas.=$lists[rand()%$m];
	}
}
print $datas;

$nは必要な文字数です。

$m=count($lists);で$mに配列の総要素数を入れます。

rand()は実行毎にランダムな数字を返す関数で、この数字を$mで割った余りが$lists配列の範囲内のランダムな数になります。

後は$n回のforループで全ての文字が入った$listsから1文字ずつを$datasに追加して行きます。

これで$n回繰り返し終われば$datasには$n個のランダムな文字列が入っていると言う訳です。



改善するべき点は

これでもランダムな文字列は出来ますが自由さがありません。
ソースコードを必要に応じて弄れば必要な形式のパスワードも得られると思いますが、やはり不便です。

  

ということで次回はフォームを用いて抽出する文字の選択が出来るように改造します。
phpとフォームでパスワード作成に使えるランダムな文字列を生成するツールの解説

スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする

関連記事



スポンサーリンク