php密码生成类实例_PHP
本文实例讲述了php实现的密码生成类及其应用方法,分享给大家供大家参考。具体分析如下:
一、php密码生成类功能:
1.可设定密码长度。
2.可设定要生成的密码个数,批量生成。
3.可以指定密码的规则,字母,数字,特殊字符等。
二、用法:
GeneratePassword.class.php类文件如下:
<?php /** Generate Password class,根据指定规则生成password * Date: 2013-12-23 * Author: fdipzone * Ver: 1.0 * * Func: * public batchGenerate 批量生成密码 * private generate 生成单个密码 * private getLetter 获取字母 * private getNumber 获取数字 * private getSpecial 获取特殊字符 */ class GeneratePassword{ // class start // 密码的规则 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<$this->_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 ?>
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('<br>', $passwords); ?>
本文完整源码可点击此处本站下载。
相信本文所述对大家的C#程序设计有一定的借鉴价值。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

PHP適合web開發,特別是在快速開發和處理動態內容方面表現出色,但不擅長數據科學和企業級應用。與Python相比,PHP在web開發中更具優勢,但在數據科學領域不如Python;與Java相比,PHP在企業級應用中表現較差,但在web開發中更靈活;與JavaScript相比,PHP在後端開發中更簡潔,但在前端開發中不如JavaScript。

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。
