PHP関数 備忘録:ランダムパスワード生成(英数字混在):DW230
ランダムパスワード生成(英数字混在)(※エクセル版はこちら⇒ランダムパスワード作成ツール)
呼び出すだけだと選択されなかったり重複が多かったりするので重複せず必ず混在させる方法を考える ※リストから呼び出しているのは使いたくない文字を含めないため ■簡単な方法はリストを作って array_rand() 関数で呼び出せば取得できます
例)リストから8桁取得する場合(間違えやすい 1,0,i,l,o,q,w,I,L,O,Q を使っていません)
結果
28krBPSU(←上記の式を実行しています。更新)
使用したい数字を上記の $ar = array(ここにドット区切りで入れる); array_rand で8個取り出すというシンプルなものですが、この方法だと array_rand はセットされた左から呼び出すので数字、小文字、大文字の順番になってしまうし 全部数字や全部小文字などの奇跡がおきるかもしれない (※PHP5.2.10から結果の配列のキーがシャッフルされなくなりました) ■上記の方法から順番を無くすために3つのリストを作る
例)数字、小文字、大文字のリストから取得する場合(間違えやすい 1,0,i,l,o,q,w,I,L,O,Q を使っていません)
結果
3DREd844(←上記の式を実行しています。更新)
3つのリストをランダムで呼び出すことで数字、小文字、大文字の順番が無くなります この方法だと"必ず英数字混在"にはならない(全部数字、全部小文字などの奇跡が起きるかもしれない) ■上記の方法から"必ず英数字混在"する方法を考える
例)数字、小文字、大文字を混在させて取得する場合(間違えやすい 1,0,i,l,o,q,w,I,L,O,Q を使っていません)
結果
8Bvv6uTT(←上記の式を実行しています。更新)
リストをもう1つ作ってランダムに並び替える(shuffle)ことで全部の文字を使う この方法だと"必ず英数字混在"になる これを使ったツールを公開しています参考にしてください (エクセルでのランダムパスワードの作り方も紹介しています。) ランダムパスワード作成ツール |
|
TOPへ | ||
・用途 | 使用例 | 使用関数 |
・「平成」を新元号「令和」に変更 | 令和6年11月21日 18:20:07 | gmt() gmdate() if() time() |
・ランダムパスワード生成(数字) | PASS:5471 | array_rand() if() for |
・ランダムパスワード生成(英数字混在) | PASS:D5enKk38p | array_rand() if() array() 他 |
・フッター用タイムスタンプ | 2024/11/21 18:20:07 | time() gmdate() |
・日数のカウントダウン | time() strtotime() ceil() | |
・転送と条件付き転送 | header() if() $_SERVER[] | |
・URLエンコード/デコード | urlencode() urldecode() | |
・トーナメント表を作る | if() echo() isset() | |
・error: Invalid numeric literal in line *** | ||
・PHP7に変更後に変数が最初の1文字しか取得しない |