公開日:2013.06.24

fuelphpでランダムなパスワードを作成(少し強力に)

テクログ

「fuelphp」は「few得るphp」だと誰が言ったんだ!?

・・・よく考えたら誰も言ってませんでした。

お世話になっております、ミネックです。
今回はfuelphpで、パスワード用のランダムな文字列を作成してみようと思います。

実はfuelphpには、すでにその機能があります。


$pass = Str::random("alnum", 16);

基本的には↑でOK。
ランダムな16桁の英数(大文字小文字区別)が作られます。
お気付きの通り、”alnum”となっているところを変えることで、色んなタイプのランダム文字列を生成できます。
そしてさらにお気付きの通り、数字の部分(↑では16のとこ)に任意の数字を入れることで、桁数をいじれます。

最高ですね!

でも少しだけ不満が。

16桁に設定してる時はそうでもないんですが、10桁ぐらいだと、
生成される文字列に数字が含まれないことが結構あります。

はい、今回いじってみたのはこの部分です。

コード

あんまり引っ張っても、意味が無いので以下そのコード。


//パスワードの文字数
$pass_len = 10;

//パスワードに含まれる数字の数
$num_len = mt_rand(1,4);

//パスワードに含まれるアルファベットの数
$al_len = $pass_len - $num_len;

$num = Str::random("numeric", $num_len);
$al = Str::random("alpha", $al_len);

//文字列をシャッフル
$res = str_shuffle($num.$al);

これで、数字が必ず入ってきます☆
パスワードに含まれる数字の数はお好みで。

この記事を書いた人

core-corp

入社年2010年

出身地東京都

業務内容インフラ

特技または趣味ドライブ

core-corpの記事一覧へ

テクログに関する記事一覧