全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

PHP中快速生成随机密码的几种方式

思路是这样的,密码通常是英文字母和数字的混合编排,我们可以借助随机函数rand函数随机的选择一个长字符串的一部分。

function random_code($length = 8,$chars = null){
  if(empty($chars)){
    $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  }
  $count = strlen($chars) - 1;
  $code = '';
  while( strlen($code) < $length){
    $code .= substr($chars,rand(0,$count),1);
  }
  return $code;
}
echo random_code;//A1zYbN5X

我们使用rand函数的目的是为了产生随机的字符串,但是如果有一个函数可以做到的话,我们就没有必要使用rand函数了。

function random_char($length = 8,$chars = null){
  if( empty($chars) ){
    $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  }
  $chars = str_shuffle($chars);
  $num = $length < strlen($chars) - 1 ? $length:str_len($chars) - 1;
  return substr($chars,0,$num);
}

可以看到不使用rand函数,而是使用str_shuffle函数,好处是大大减少了代码量。

更近一部的,我们的函数不仅可以生成随机的密码,还可以生成短信验证码,以及高强度的服务器登录密码。

function random_code_type($length = 8,$type = 'alpha-number'){
  $code_arr = array(
    'alpha' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
    'number'=> '0123456789',
    'sign'  => '#$%@*-_',
  );

  $type_arr = explode('-',$type);

  foreach($type_arr as $t){
    if( ! array_key_exists($t,$code_arr)){
      trigger_error("Can not generate type ($t) code");
    }
  }

  $chars = '';

  foreach($type_arr as $t){
    $chars .= $code_arr[$t];
  }
  $chars = str_shuffle($chars);
  $number = $length > strlen($chars) - 1 ? strlen($chars) - 1:$length;
  return substr($chars,0,$number);
}

echo random_code_type(8,"alpha-number-sign");#kXM*mC$S

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# php  # 生成随机密码  # 随机密码生成  # php/JS实现的生成随机密码(验证码)功能示例  # 纯php生成随机密码  # PHP生成随机密码方法汇总  # php生成随机密码自定义函数代码(简单快速)  # php中生成随机密码的自定义函数代码  # PHP生成随机用户名和密码的实现代码  # php生成随机密码的几种方法  # php生成随机密码的三种方法小结  # PHP生成随机密码4种方法及性能对比  # 还可以  # 是这样  # 我们可以  # 就没  # 可以看到  # 有必要  # 验证码  # 高强度  # 可以做到  # 大家多多  # 英文字母  # 有一个  # 更近  # 是为了  # 减少了  # count  # strlen  # code  # empty  # return 


相关文章: 建站之星安装路径如何正确选择及配置?  ui设计制作网站有哪些,手机UI设计网址吗?  为什么Go需要go mod文件_Go go mod文件作用说明  制作网站的过程怎么写,用凡科建站如何制作自己的网站?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  微信小程序 五星评分(包括半颗星评分)实例代码  建站之星安装后如何自定义网站颜色与字体?  c# 在高并发下使用反射发射(Reflection.Emit)的性能  如何快速选择适合个人网站的云服务器配置?  如何制作一个表白网站视频,关于勇敢表白的小标题?  Swift中循环语句中的转移语句 break 和 continue  ,sp开头的版面叫什么?  广平建站公司哪家专业可靠?如何选择?  如何快速搭建高效服务器建站系统?  如何高效完成自助建站业务培训?  高防服务器:AI智能防御DDoS攻击与数据安全保障  PHP 500报错的快速解决方法  浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?  大连网站制作公司哪家好一点,大连买房网站哪个好?  大型企业网站制作流程,做网站需要注册公司吗?  Python如何创建带属性的XML节点  如何通过虚拟主机快速搭建个人网站?  建站之星×万网:智能建站系统+自助建站平台一键生成  北京营销型网站制作公司,可以用python做一个营销推广网站吗?  哈尔滨网站建设策划,哈尔滨电工证查询网站?  建站之星客服服务时间及联系方式如何?  制作旅游网站html,怎样注册旅游网站?  如何快速使用云服务器搭建个人网站?  ,怎么用自己头像做动态表情包?  如何在IIS中配置站点IP、端口及主机头?  中山网站推广排名,中山信息港登录入口?  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  建站上传速度慢?如何优化加速网站加载效率?  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  高端建站三要素:定制模板、企业官网与响应式设计优化  定制建站哪家更专业可靠?推荐榜单揭晓  实现点击下箭头变上箭头来回切换的两种方法【推荐】  成都响应式网站开发,dw怎么把手机适应页面变成网页?  在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?  建站之星代理费用多少?最新价格详情介绍  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  宝塔新建站点报错如何解决?  广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  如何确认建站备案号应放置的具体位置?  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  建站之星后台密码遗忘?如何快速找回?  宁波免费建站如何选择可靠模板与平台?  如何使用Golang安装API文档生成工具_快速生成接口文档 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。