ホームページ  >  記事  >  バックエンド開発  >  php_PHP チュートリアルでランダムなパスワードを生成するカスタム関数コード

php_PHP チュートリアルでランダムなパスワードを生成するカスタム関数コード

WBOY
WBOYオリジナル
2016-07-13 10:25:58691ブラウズ

コード 1:

ランダムなパスワードを生成する関数。生成されるパスワードは小文字と数字のランダムな文字列で、長さはカスタマイズできます。比較的、これは比較的簡単です

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

/*
* php は新しいパスワードのカスタム関数を自動的に生成します (サンプルデモ付き)
適用環境: PH​​P5.2.x / mysql 5.0.x
* */
function genPassword($min = 5, $max = 8)
{
$validchars="abcdefghijklmnopqrstuvwxyz123456789";
$max_char=strlen($validchars)-1; ($min,$ max);
$password = "";
for($i=0;$i<$length;$i )
{
$password.=$validchars[mt_rand(0,$max_char)] ;
}
return $password;
}
echo "新しいパスワード:".genPassword()."
";
echo "新しいパスワード:".genPassword(5,10)." ;
?>


参考までに、いくつかの例を以下にまとめます。
例1

最も簡単な生成方法

コードをコピーします コードは次のとおりです:
function generatedPassword($length=8)
{
$chars = array_merge(range(0,9),
range('a','z '),
range('A','Z'),
array('!','@','$','%','^','&','*'));
シャッフル($chars) ;
$password = '';
for($i=0; $i<8; $i++) {
$password .= $chars[$i];
}
return $password;
}

例 2

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

2. 35 を、#
に対応する 35 などの対応する ASCII コード文字に変換します。上記の手順 1 と 2 を n 回繰り返して、n に接続します。 -桁のパスワード

コードをコピー コードは次のとおりです:
function create_password($pw_length = 8)
{
$randpwd = '';
for ($i = 0; $i < $pw_length; $ i ++){
$ randpwd。= chr(mt_rand(33、126));
// この関数を呼び出し、長さパラメータを渡します $pw_length = 6
echo create_password(6);




コードをコピーします

コードは次のとおりです:


mt_srand((double) microtime() * 1000000);

function gen_random_password($password_length = 32, $generated_pa​​ssword = ""){
$valid_characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$chars_length = strlen($valid_characters) - 1;
for($i = $password_length; $i--; ) {
//$generated_pa​​ssword .= $valid_characters[mt_rand(0, $chars_length)];

$generated_pa​​ssword .= substr($valid_characters, (mt_rand()%(strlen($valid_characters))), 1);
}
$generated_pa​​ssword を返します。
}

?>

<頭>
php 秘密暗号生成器 v 4.0


<ボディ>
密码生成器v4.0 by freemouse



if (isset($_GET['password_length'])){
if(preg_match("/([0-9]{1,8})/", $_GET['password_length'] )){
print("密码生成成功:

" . gen_random_password($_GET['password_length']) . "
n");
} else {
print("密码长度不正确!

n");
}
}

印刷 <<< end
请は秘密暗号の生成であり、生成秘密暗号の長さを指定します:


<フォームアクション="{$_SERVER['PHP_SELF']}"メソッド="get">



終了;

?>


例4


1、整置された文字列 $chars 、a – z、A – Z、0 – 9、およびいくつかの特殊な文字符を含む
2、$chars 文字列内の随机取一文字
3、重复第二步次に、長さ n の秘密を取得できます

复制代码代码如下:
functiongenerate_password( $length = 8 ) {
// 秘密文字符集、任意追加你必要な文字符
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJK LMNOPQRSTUVWXYZ0123456789!@#$%^& *()-_ []{}~`+=,.;:/?|';
$password = '';

for ( $i = 0; $i < $length; $i++ )
{
// 这里提供两种字符获取方式
// 第一种是使用 substr 截取$chars中の任意一位文字;
// 第二番目は取字文字数組 $chars の任意元素
// $password .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
$password .= $chars[ mt_rand(0, strlen($chars) - 1) ];
}

return $password;

}

上面经赋试パフォーマンス都不如下面这个

1、指定された文字数群 $chars 、a – z、A – Z、0 – 9、およびいくつかの特殊文字を含む

2、array_rand() を通過して $chars 中随机出 $length 个元素
3 、取得済みのセキュリティ名の数集合 $keys に基づいて、数集合 $chars から文字列を取り出します。この方法の特徴は、同じ文字が繰り返されないことです。

复制代価代価如下:

function make_password( $length = 8 )
{
// パスワード文字セット、必要な文字を追加できます
$chars = array('a', 'b', 'c', 'd', 'e '、'f'、'g'、'h'、
'i'、'j'、'k'、'l'、'm'、'n'、'o'、'p'、'q' 、'r'、's'、
't'、'u'、'v'、'w'、'x'、'y'、'z'、'A'、'B'、'C'、 'D'、
'E'、'F'、'G'、'H'、'I'、'J'、'K'、'L'、'M'、'N'、'O'、
'P'、'Q'、'R'、'S'、'T'、'U'、'V'、'W'、'X'、'Y'、'Z'、
'0'、' 1'、'2'、'3'、'4'、'5'、'6'、'7'、'8'、'9'、'!'、
'@'、'#'、'$ '、'%'、'^'、'&'、'*'、'('、')'、'-'、'_'、
'['、']'、'{'、'}' 、'<'、'>'、'~'、'`'、'+'、'='、','、
'.'、';'、':'、'/'、'? ', '|');

// $chars 内の $length 配列要素のキー名をランダムに選択します
$keys = array_rand($chars, $length);

$password = '';
for($i = 0; $i < $length; $i++)
{
" // $length の配列要素を文字列に連結します
" $password .= $chars[$keys [$i]];
}

return $password;
}

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/824893.html技術記事コード 1: ランダムなパスワードを生成する関数。生成されるパスワードは小文字と数字のランダムな文字列で、長さはカスタマイズできます。比較的簡単に言えば、コードをコピーするコード...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。