ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルでランダムなパスワードを生成するいくつかの方法の概要

PHP_PHP チュートリアルでランダムなパスワードを生成するいくつかの方法の概要

WBOY
WBOYオリジナル
2016-07-13 17:16:281209ブラウズ

ランダムなパスワードを生成したい場合、最初に uniquid() 関数を使用することを考えるかもしれませんが、array_rand() と range() を使用すると、この関数をより完璧に実現できます。


方法1、

コードは次のとおりです コードをコピー

header("コンテンツタイプ: text/html; charset=utf-8");

関数 ranCode($length) {
$ranges = array(range('a', 'z'), range('A', 'Z'), range(1, 9));
$コード = '';
for($i = 0; $i < $length; $i++){
$rkey = array_rand($ranges);
$vkey = array_rand($ranges[$rkey]);
$code .= $ranges[$rkey][$vkey];
}
$code を返します;
}

エコー「www.bKjia.c0m」;
echo randCode(5); // 3IxY8、E6HOv、1qHiy などの出力
?>

方法2、

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 を対応する文字に変換します。

コードは次のとおりですコードをコピー

方法 3、

関数 create_password($pw_length = 8)

{

$randpwd = '';

for ($i = 0; $i < $pw_length; $i++)

{

$randpwd .= chr(mt_rand(33, 126));

}

$randpwd を返す;

}

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

echo create_password(6);

コードは次のとおりです コードをコピー

//ユーザーのランダムなユーザー名 (長さ 6 ~ 13) を自動的に生成します

function create_password($pw_length = 4){

$randpwd = '';

for ($i = 0; $i < $pw_length; $i++){

$randpwd .= chr(mt_rand(33, 126));

}

$randpwd を返す;

}

function generated_username( $length = 6) {

// パスワードの文字セット。必要な文字を追加できます

$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_ []{}<>~`+=,.;:/?|';

$password = '';

for ( $i = 0; $i

{

_

// $password .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);

$password .= $chars[ mt_rand(0, strlen($chars) - 1) ];

}

$password を返す;

}

// この関数を呼び出します

$userId = 'user'.generate_username(6);

$pwd = create_password(9);

http://www.bkjia.com/PHPjc/628618.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/628618.html技術記事ランダムなパスワードを生成したい場合、最初に uniquid() 関数を使用することを考えるかもしれませんが、array_rand() と range() を使用すると、より完璧にこれを実現できます...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。