ホームページ  >  記事  >  バックエンド開発  >  PHPでランダムなパスワードを生成する方法のまとめ、PHP生成のまとめ_PHPチュートリアル

PHPでランダムなパスワードを生成する方法のまとめ、PHP生成のまとめ_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 09:44:26781ブラウズ

PHP でランダムなパスワードを生成する方法のまとめ、PHP 生成の概要

PHP を使用してアプリケーション、特に Web サイトのプログラムを開発するには、ランダムなパスワードを生成するためのユーザー登録など、ランダムなパスワードの生成が必要になることがよくあります。ランダムなパスワードを生成する必要があります。ランダムなパスワードは固定長の文字列です。ここでは、参考のためにランダムな文字列を生成するいくつかの方法を集めました。

方法 1:

1. 33 ~ 126 のランダムな整数 (35 など) を生成します。

2. 35 を対応する ASCII 文字に変換します (#

に対応する 35 など)。

3. 上記の手順 1 と 2 を n 回繰り返して、n 桁のパスワードに接続します

このアルゴリズムは主に 2 つの関数を使用します。 mt_rand (int $min, int $max) 関数はランダムな整数を生成するために使用されます。$min – $max は ASCII コードの範囲です。範囲は 33 ~ 126 です。たとえば、ASCII コード表の 97 ~ 122 ビットは、英語の文字 a ~ z に対応します。詳細については、ASCII コード表を参照してください。変換には chr (int $ascii) 関数が使用されます。対応する整数 $ascii を対応する文字に変換します。

リーリー

// この関数を呼び出し、長さパラメータ $pw_length = 6 を渡します
リーリー

方法 2:

1. a – z、A – Z、0 – 9、およびいくつかの特殊文字を含む文字列 $chars をプリセットします


2. $chars 文字列からランダムに文字を選択します


3. 2 番目のステップを n 回繰り返して、長さ n のパスワードを取得します

リーリー

方法 3:

1. a – z、A – Z、0 – 9、およびいくつかの特殊文字を含む文字配列 $chars をプリセットします


2. array_rand() を通じて配列 $chars から $length 要素をランダムに選択します


3. 取得したキー名配列 $keys に従って、配列 $chars から文字を取り出し、文字列を連結します。この方法の欠点は、同じ文字が繰り返し取得されないことです。

リーリー

方法 4:

このメソッドは、この記事が Blue Ideal によって転載された後にネットユーザーによって提供された新しいメソッドです。md5() 関数の戻り値のため、生成されるパスワードには文字と文字のみが含まれます。数字ですが、それも良い方法です。アルゴリズム的思考:


1. time() は現在の Unix タイムスタンプを取得します


2. 最初のステップで取得したタイムスタンプを md5() で暗号化します


3. 2 番目のステップの暗号化結果から n 桁を傍受し、目的のパスワードを取得します

リーリー

時間効率の比較

以下の PHP コードを使用して、6 桁のパスワードを生成するための上記 4 つのランダム パスワード生成関数の実行時間を計算し、その時間効率を簡単に比較します。

リーリー

方法 5: リーリー

最終結果は次のとおりです:

方法 1: 9.8943710327148E-5 秒


方法 2: 9.6797943115234E-5 秒


方法 3: 0.00017499923706055 秒


方法 4: 3.4093856811523E-5 秒

方法 1 と方法 2 の実行時間はほぼ同様で、方法 4 の実行時間が最も短く、方法 3 の実行時間がわずかに長いことがわかります。

http://www.bkjia.com/PHPjc/1049120.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1049120.html技術記事 PHP でランダムなパスワードを生成する方法のまとめ PHP でランダムなパスワードを生成する方法のまとめ PHP を使用してアプリケーション、特に Web サイトのプログラムを開発する場合、たとえば、ユーザー登録のためにランダムなパスワードを生成する必要があることがよくあります。 ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。