日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

PHP密码生成管理源码,php密码生成类(附源码)

發布時間:2025/3/19 php 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP密码生成管理源码,php密码生成类(附源码) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本節內容:

好用的php 密碼生成類。

訪代碼實現的功能:

1,可設定密碼長度。

2,可設定要生成的密碼個數,批量生成。

3,可以指定密碼的規則,字母,數字,特殊字符等。

1,密碼生成類文件 GeneratePassword.class.php 代碼示例:

/** Generate Password class,根據指定規則生成password

*?? Date:?? 2013-12-23

*?? Author: fdipzone

*?? Ver:??? 1.0

*?? edit:www.#

*?? Func:

*?? public? batchGenerate 批量生成密碼

*?? private generate????? 生成單個密碼

*?? private getLetter???? 獲取字母

*?? private getNumber???? 獲取數字

*?? private getSpecial??? 獲取特殊字符

*/

class GeneratePassword{ // class s

tart

// 密碼的規則 default

private $_rule = array(

'letter' => 1,

'number' => 1,

'special' => 1

);

private $_length = 8;???????????????? // 密碼長度

private $_num = 1;??????????????????? // 密碼數量

private $_special = '!@#$%^&*()_+=-'; //允許的特殊字符

/** 初始化

* @param int??? $length? 密碼長度

* @param int??? $num???? 密碼數量

* @param Array? $rule??? 密碼規則

* @param String $special 允許的特殊字符

*/

public function __construct($length=8, $num=1, $rule=array(), $special=''){

if(isset($length) && is_numeric($length) && $length>=4 && $length<=50){ // 長度

$this->_length = $length;

}

if(isset($num) && is_numeric($num) && $num>0 && $num<=100){ // 數量

$this->_num = $num;

}

if(isset($special) && is_string($special) && $special!=''){ // 特殊字符

$this->_special = $special;

}

if($rule){ // 規則

$t_rule = array();

if(isset($rule['letter']) && in_array($rule['letter'], array(1,2,3,4,5))){ // 1:可選用 2:必須 3:必須小寫 4:必須大寫 5:大小寫都必須

$t_rule['letter'] = $rule['letter'];

}

if(isset($rule['number']) && in_array($rule['number'], array(1,2))){ // 1:可選用 2:必須

$t_rule['number'] = $rule['number'];

}

if(isset($rule['special']) && in_array($rule['special'], array(1,2))){ // 1:可選用 2:必須

$t_rule['special'] = $rule['special'];

}

if($t_rule){

$this->_rule = $t_rule;

}

}

}

/** 批量生成密碼

* @return Array

*/

public function batchGenerate(){

$passwords = array();

for($i=0; $i_num; $i++){

array_push($passwords, $this->generate());

}

return $passwords;

}

/** 生成單個密碼

* @return String

*/

private function generate(){

$password = '';

$pool = '';

$force_pool = '';

if(isset($this->_rule['letter'])){

$letter = $this->getLetter();

switch($this->_rule['letter']){

case 2:

$force_pool .= substr($letter, mt_rand(0,strlen($letter)-1), 1);

break;

case 3:

$force_pool .= strtolower(substr($letter, mt_rand(0,strlen($letter)-1), 1));

$letter = strtolower($letter);

break;

case 4:

$force_pool .= strtoupper(substr($letter, mt_rand(0,strlen($letter)-1), 1));

$letter = strtoupper($letter);

break;

case 5:

$force_pool .= strtolower(substr($letter, mt_rand(0,strlen($letter)-1), 1));

$force_pool .= strtoupper(substr($letter, mt_rand(0,strlen($letter)-1), 1));

break;

}

$pool .= $letter;

}

if(isset($this->_rule['number'])){

$number = $this->getNumber();

switch($this->_rule['number']){

case 2:

$force_pool .= substr($number, mt_rand(0,strlen($number)-1), 1);

break;

}

$pool .= $number;

}

if(isset($this->_rule['special'])){

$special = $this->getSpecial();

switch($this->_rule['special']){

case 2:

$force_pool .= substr($special, mt_rand(0,strlen($special)-1), 1);

break;

}

$pool .= $special;

}

$pool = str_shuffle($pool); // 隨機打亂

$password = str_shuffle($force_pool. substr($pool, 0, $this->_length-strlen($force_pool))); // 再次隨機打亂

return $password;

}

/** 字母 */

private function getLetter(){

$letter = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz';

return $letter;

}

/** 數字 */

private function getNumber(){

$number = '1234567890';

return $number;

}

/** 特殊字符 */

private function getSpecial(){

$special = $this->_special;

return $special;

}

} // class end

?>

2,演示代碼 demo.php: 代碼示例:

require 'GeneratePassword.class.php';

$rule = array(

'letter' => 5, // 必須含有大小寫字母

'number' => 2, // 必須含有數字

'special' => 2 // 必須含有特殊字符

);

$special = '!@#$%_-';

$obj = new GeneratePassword(8, 10, $rule, $special);

$passwords = $obj->batchGenerate();

echo implode('
', $passwords);

?>

附,php密碼生成類的源碼下載地址

總結

以上是生活随笔為你收集整理的PHP密码生成管理源码,php密码生成类(附源码)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。