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


相关推荐: Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  大连 网站制作,大连天途有线官网?  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  Laravel如何使用Blade模板引擎?(完整语法和示例)  如何在云指建站中生成FTP站点?  浅谈javascript alert和confirm的美化  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  Laravel如何处理文件下载请求?(Response示例)  IOS倒计时设置UIButton标题title的抖动问题  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  手机软键盘弹出时影响布局的解决方法  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  奇安信“盘古石”团队突破 iOS 26.1 提权  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  javascript如何操作浏览器历史记录_怎样实现无刷新导航  电商网站制作价格怎么算,网上拍卖流程以及规则?  Python自动化办公教程_ExcelWordPDF批量处理案例  Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  如何在阿里云通过域名搭建网站?  Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  米侠浏览器网页背景异常怎么办 米侠显示修复  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  南京网站制作费用,南京远驱官方网站?  大型企业网站制作流程,做网站需要注册公司吗?  利用JavaScript实现拖拽改变元素大小  php打包exe后无法访问网络共享_共享权限设置方法【教程】  高端网站建设与定制开发一站式解决方案 中企动力  Laravel storage目录权限问题_Laravel文件写入权限设置  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  JS碰撞运动实现方法详解  Laravel怎么调用外部API_Laravel Http Client客户端使用  公司门户网站制作流程,华为官网怎么做?  Laravel如何使用Vite进行前端资源打包?(配置示例)  js实现获取鼠标当前的位置  如何在阿里云ECS服务器部署织梦CMS网站?  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  如何快速选择适合个人网站的云服务器配置?  EditPlus中的正则表达式实战(6)  JavaScript Ajax实现异步通信  详解MySQL数据库的安装与密码配置  用v-html解决Vue.js渲染中html标签不被解析的问题  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体