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

发布时间 - 2026-01-11 00:41:06    点击率:

思路是这样的,密码通常是英文字母和数字的混合编排,我们可以借助随机函数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 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  Laravel如何使用Service Container和依赖注入?(代码示例)  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  简单实现Android验证码  Bootstrap CSS布局之列表  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  Laravel集合Collection怎么用_Laravel集合常用函数详解  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  昵图网官网入口 昵图网素材平台官方入口  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  大型企业网站制作流程,做网站需要注册公司吗?  微信公众帐号开发教程之图文消息全攻略  如何快速生成ASP一键建站模板并优化安全性?  Android仿QQ列表左滑删除操作  java获取注册ip实例  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  教你用AI润色文章,让你的文字表达更专业  三星、SK海力士获美批准:可向中国出口芯片制造设备  JavaScript如何实现音频处理_Web Audio API如何工作?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  Laravel如何实现API速率限制?(Rate Limiting教程)  如何在香港服务器上快速搭建免备案网站?  HTML 中动态设置元素 name 属性的正确语法详解  javascript中闭包概念与用法深入理解  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  如何用AI帮你把自己的生活经历写成一个有趣的故事?  如何用腾讯建站主机快速创建免费网站?  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  如何用狗爹虚拟主机快速搭建网站?  Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤  简单实现Android文件上传  焦点电影公司作品,电影焦点结局是什么?  如何打造高效商业网站?建站目的决定转化率  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  如何自定义建站之星网站的导航菜单样式?  如何用虚拟主机快速搭建网站?详细步骤解析  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  Firefox Developer Edition开发者版本入口  大同网页,大同瑞慈医院官网?  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  手机网站制作与建设方案,手机网站如何建设?  JavaScript实现Fly Bird小游戏  Python高阶函数应用_函数作为参数说明【指导】  Laravel如何从数据库删除数据_Laravel destroy和delete方法区别  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议