【メモ】PHPでパスワードを自動作成する
任意の桁数のパスワードを自動で作成してくれる関数があったのでメモ。
Generate a password in php
上記サイトに詳しく載っていますが、利用したいPHPで
function generatePassword($length=9, $strength=0) { $vowels = 'aeuy'; $consonants = 'bdghjmnpqrstvz'; if ($strength >= 1) { $consonants .= 'BDGHJLMNPQRSTVWXZ'; } if ($strength >= 2) { $vowels .= "AEUY"; } if ($strength >= 4) { $consonants .= '23456789'; } if ($strength >= 8 ) { $vowels .= '@#$%'; } $password = ''; $alt = time() % 2; for ($i = 0; $i < $length; $i++) { if ($alt == 1) { $password .= $consonants[(rand() % strlen($consonants))]; $alt = 0; } else { $password .= $vowels[(rand() % strlen($vowels))]; $alt = 1; } } return $password; }
という関数を制作してパスワードを表示したいところで
<?php echo generatePassword();?>
と出力するだけでOKです。
引数は二つあり、一つ目がパスワードの桁数(デフォルト8桁)で、二つ目がパスワード強度になっています。
パスワード強度(初期値0)が低いと使われる文字は英小文字だけですが、強度を増やしていくと大文字や数字、記号などが増えていきます。
簡単なパスワードを作成するだけならこれで十分つかえそうです。