首页 > 作文

php密码生成类实例

更新时间:2023-04-06 10:24:53 阅读: 评论:0

本文实例讲述了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(ist($length) && is_numeric($length) && $length>=4 && $length<=50){ // 长度       $this->_length = $length;     }      if(ist($num) && is_numeric($num) && $num>0 && $num<=100){ // 数量       $this->_num = $num;     }      if(ist($special) && is_string($special) && $special!=''){ // 特殊字符       $this->_special = $special;     }      if($rule){ // 规则        $t_rule = array();        if(ist($rule['letter']) && in_array($rule['letter'], array(1,2,3,4,5))){ // 1:可选用 2:必须 3:必须小写 4:必须大写 5:大小写都必须         $t_rule['letter'] = $rule['letter'];       }        if广西最早的大学(ist($rule['number']) && in_array($rule['number'], array(1,2))){ // 1:可选用 2:必须         $t_rule['number'] = $rule['number'];       }        if(ist($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(ist($this->_rule['letter'])){        $letter = $this->getletter();        switch($this->_rule['letter']){         ca 2:           $force_pool .= substr($letter, mt_rand(0,strlen($letter)-1), 1);           break;          ca 3:           $force_pool .= strtolower(substr($letter, mt_rand(0,strlen($letter)-1), 1));           $letter = strtolower($letter);           break;          ca 4:           $force_pool .= strtoupper(substr($letter, mt_rand(0,strlen($letter)-1), 1));           $letter = strtoupper($letter);           break;          ca 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(ist($this->_rule['number'])){        $number = $this->getnumber();        switch($this->_rule['number']){         ca 2:           $force_pool .= substr($number, mt_rand(0,strlen($number)-1), 1);           break;       }        $pool .= $number;     }      if(ist($this->_rule['special'])){        $special = $this->getspecial();        switch($this->_rule['special']){         ca 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 getspe土木工程认识实习报告cial(){     $special = $this->_special;     return $special;   } } // class end  ?> 

demo示例程序如下:

<?php require 'generatepassword.class.php';  $rule = array(   'letter' =&g钢刀 电影t; 5, // 必须含有大小写字母   'number' => 2, // 必须含有数字   'special' => 2 // 必须含有特殊字符 );  $special = '!@#$%_-';  $obj = new generatepassword(8, 10, $rule, $special); $passwords = $obj->batchgenerate();  echo implode('<br皖西学院体育学院>', $passwords); ?> 

本文完整源码可点击此处本站下载。

相信本文所述对大家的c#程序设计有一定的借鉴价值。

本文发布于:2023-04-06 10:24:52,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/4e12c05ca65b1aa005033318ca2a0919.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:php密码生成类实例.doc

本文 PDF 下载地址:php密码生成类实例.pdf

标签:密码   特殊字符   规则   长度
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图