====== パスワード自動生成 (Password Generator) ======
以下の条件で、パスワードを自動生成しています。
  * 文字数は16文字または20文字
  * 英数字記号
  * 混同しやすい文字は省きました(oO0 Il1 gq9 UV)
  * 使用した記号 +-*/~!#$%_=&()[]{},.?
===== 20文字 =====
\\
~~NOCACHE~~
// password char
$password_chars = 'ABCDEFGHJKLMNPQRSTWXYZabcdefhijkmnprstuvwxyz2345678+-*/~!#$%_=&()[]{},.?';
$password_chars_count = strlen($password_chars);
$size=20;
// generate 5 password 
//   $size:length
for ($i=1; $i <= 5; $i++) { 
  //$data = mcrypt_create_iv($size, MCRYPT_DEV_URANDOM);
  $data = random_bytes($size);
  $pin = '';
  for ($n = 0; $n < $size; $n ++) {
    $pin .= substr($password_chars, ord(substr($data, $n, 1)) % $password_chars_count, 1);
  }
echo $pin;
echo '
';
}
----
こちらは英数字のみ
// password char
$password_chars = 'ABCDEFGHJKLMNPQRSTWXYZabcdefhijkmnprstuvwxyz2345678';
$password_chars_count = strlen($password_chars);
$size=20;
// generate 5 password 
//   $size:length
for ($i=1; $i <= 5; $i++) { 
  //$data = mcrypt_create_iv($size, MCRYPT_DEV_URANDOM);
  $data = random_bytes($size);
  $pin = '';
  for ($n = 0; $n < $size; $n ++) {
    $pin .= substr($password_chars, ord(substr($data, $n, 1)) % $password_chars_count, 1);
  }
echo $pin;
echo '
';
}
----
こちらは英数字(大文字)のみ
// password char
$password_chars = 'ABCDEFGHJKLMNPQRSTWXYZ2345678';
$password_chars_count = strlen($password_chars);
$size=20;
// generate 5 password 
//   $size:length
for ($i=1; $i <= 5; $i++) { 
  //$data = mcrypt_create_iv($size, MCRYPT_DEV_URANDOM);
  $data = random_bytes($size);
  $pin = '';
  for ($n = 0; $n < $size; $n ++) {
    $pin .= substr($password_chars, ord(substr($data, $n, 1)) % $password_chars_count, 1);
  }
echo $pin;
echo '
';
}
----
こちらは英数字(小文字)のみ
// password char
$password_chars = 'abcdefhijkmnprstuvwxyz2345678';
$password_chars_count = strlen($password_chars);
$size=20;
// generate 5 password 
//   $size:length
for ($i=1; $i <= 5; $i++) { 
  //$data = mcrypt_create_iv($size, MCRYPT_DEV_URANDOM);
  $data = random_bytes($size);
  $pin = '';
  for ($n = 0; $n < $size; $n ++) {
    $pin .= substr($password_chars, ord(substr($data, $n, 1)) % $password_chars_count, 1);
  }
echo $pin;
echo '
';
}
----
こちらは数字のみ
// password char
$password_chars = '0123456789';
$password_chars_count = strlen($password_chars);
$size=20;
// generate 5 password 
//   $size:length
for ($i=1; $i <= 5; $i++) { 
  //$data = mcrypt_create_iv($size, MCRYPT_DEV_URANDOM);
  $data = random_bytes($size);
  $pin = '';
  for ($n = 0; $n < $size; $n ++) {
    $pin .= substr($password_chars, ord(substr($data, $n, 1)) % $password_chars_count, 1);
  }
echo $pin;
echo '
';
}
===== 16文字 =====
----
\\
~~NOCACHE~~
// password char
$password_chars = 'ABCDEFGHJKLMNPQRSTWXYZabcdefhijkmnprstuvwxyz2345678+-*/~!#$%_=&()[]{},.?';
$password_chars_count = strlen($password_chars);
$size=16;
// generate 5 password 
//   $size:length
for ($i=1; $i <= 5; $i++) { 
  //$data = mcrypt_create_iv($size, MCRYPT_DEV_URANDOM);
  $data = random_bytes($size);
  $pin = '';
  for ($n = 0; $n < $size; $n ++) {
    $pin .= substr($password_chars, ord(substr($data, $n, 1)) % $password_chars_count, 1);
  }
echo $pin;
echo '
';
}
----
こちらは英数字のみ
// password char
$password_chars = 'ABCDEFGHJKLMNPQRSTWXYZabcdefhijkmnprstuvwxyz2345678';
$password_chars_count = strlen($password_chars);
$size=16;
// generate 5 password 
//   $size:length
for ($i=1; $i <= 5; $i++) { 
  //$data = mcrypt_create_iv($size, MCRYPT_DEV_URANDOM);
  $data = random_bytes($size);
  $pin = '';
  for ($n = 0; $n < $size; $n ++) {
    $pin .= substr($password_chars, ord(substr($data, $n, 1)) % $password_chars_count, 1);
  }
echo $pin;
echo '
';
}
----
こちらは英数字(大文字)のみ
// password char
$password_chars = 'ABCDEFGHJKLMNPQRSTWXYZ2345678';
$password_chars_count = strlen($password_chars);
$size=16;
// generate 5 password 
//   $size:length
for ($i=1; $i <= 5; $i++) { 
  //$data = mcrypt_create_iv($size, MCRYPT_DEV_URANDOM);
  $data = random_bytes($size);
  $pin = '';
  for ($n = 0; $n < $size; $n ++) {
    $pin .= substr($password_chars, ord(substr($data, $n, 1)) % $password_chars_count, 1);
  }
echo $pin;
echo '
';
}
----
こちらは英数字(小文字)のみ
// password char
$password_chars = 'abcdefhijkmnprstuvwxyz2345678';
$password_chars_count = strlen($password_chars);
$size=16;
// generate 5 password 
//   $size:length
for ($i=1; $i <= 5; $i++) { 
  //$data = mcrypt_create_iv($size, MCRYPT_DEV_URANDOM);
  $data = random_bytes($size);
  $pin = '';
  for ($n = 0; $n < $size; $n ++) {
    $pin .= substr($password_chars, ord(substr($data, $n, 1)) % $password_chars_count, 1);
  }
echo $pin;
echo '
';
}
----
こちらは数字のみ
// password char
$password_chars = '0123456789';
$password_chars_count = strlen($password_chars);
$size=16;
// generate 5 password 
//   $size:length
for ($i=1; $i <= 5; $i++) { 
  //$data = mcrypt_create_iv($size, MCRYPT_DEV_URANDOM);
  $data = random_bytes($size);
  $pin = '';
  for ($n = 0; $n < $size; $n ++) {
    $pin .= substr($password_chars, ord(substr($data, $n, 1)) % $password_chars_count, 1);
  }
echo $pin;
echo '
';
}
===== 24文字 =====
\\
~~NOCACHE~~
// password char
$password_chars = 'ABCDEFGHJKLMNPQRSTWXYZabcdefhijkmnprstuvwxyz2345678+-*/~!#$%_=&()[]{},.?';
$password_chars_count = strlen($password_chars);
$size=24;
// generate 5 password 
//   $size:length
for ($i=1; $i <= 5; $i++) { 
  //$data = mcrypt_create_iv($size, MCRYPT_DEV_URANDOM);
  $data = random_bytes($size);
  $pin = '';
  for ($n = 0; $n < $size; $n ++) {
    $pin .= substr($password_chars, ord(substr($data, $n, 1)) % $password_chars_count, 1);
  }
echo $pin;
echo '
';
}
----
こちらは英数字のみ
// password char
$password_chars = 'ABCDEFGHJKLMNPQRSTWXYZabcdefhijkmnprstuvwxyz2345678';
$password_chars_count = strlen($password_chars);
$size=24;
// generate 5 password 
//   $size:length
for ($i=1; $i <= 5; $i++) { 
  //$data = mcrypt_create_iv($size, MCRYPT_DEV_URANDOM);
  $data = random_bytes($size);
  $pin = '';
  for ($n = 0; $n < $size; $n ++) {
    $pin .= substr($password_chars, ord(substr($data, $n, 1)) % $password_chars_count, 1);
  }
echo $pin;
echo '
';
}
----
こちらは英数字(大文字)のみ
// password char
$password_chars = 'ABCDEFGHJKLMNPQRSTWXYZ2345678';
$password_chars_count = strlen($password_chars);
$size=24;
// generate 5 password 
//   $size:length
for ($i=1; $i <= 5; $i++) { 
  //$data = mcrypt_create_iv($size, MCRYPT_DEV_URANDOM);
  $data = random_bytes($size);
  $pin = '';
  for ($n = 0; $n < $size; $n ++) {
    $pin .= substr($password_chars, ord(substr($data, $n, 1)) % $password_chars_count, 1);
  }
echo $pin;
echo '
';
}
----
こちらは英数字(小文字)のみ
// password char
$password_chars = 'abcdefhijkmnprstuvwxyz2345678';
$password_chars_count = strlen($password_chars);
$size=24;
// generate 5 password 
//   $size:length
for ($i=1; $i <= 5; $i++) { 
  //$data = mcrypt_create_iv($size, MCRYPT_DEV_URANDOM);
  $data = random_bytes($size);
  $pin = '';
  for ($n = 0; $n < $size; $n ++) {
    $pin .= substr($password_chars, ord(substr($data, $n, 1)) % $password_chars_count, 1);
  }
echo $pin;
echo '
';
}
----
こちらは数字のみ
// password char
$password_chars = '0123456789';
$password_chars_count = strlen($password_chars);
$size=24;
// generate 5 password 
//   $size:length
for ($i=1; $i <= 5; $i++) { 
  //$data = mcrypt_create_iv($size, MCRYPT_DEV_URANDOM);
  $data = random_bytes($size);
  $pin = '';
  for ($n = 0; $n < $size; $n ++) {
    $pin .= substr($password_chars, ord(substr($data, $n, 1)) % $password_chars_count, 1);
  }
echo $pin;
echo '
';
}