PHP生成随机密码的几种方法

网站程序中,常常需要生成随机密码,如用户注册生成随机密码,用户重置密码也需要生成一个随机的密码。随机密码也就是一串固定长度的字符串。

方法一

  1. 预置一个字符串$chars,包括 a – z,A – Z,0 – 9,以及一些特殊字符
  2. 在 $chars 字符串中随机取一个字符
  3. 重复第二步n次
function generate_password($length = 8)
{
    $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
!@#$%^&*()-_ []{}<>~`+=,.;:/?|';
    $password = '';
    for ($i=0; $i<$length; $i++) {
    // 一种是取字符数组 $chars 的任意元素
    // 另一种是使用 substr 截取$chars中的任意一位字符
        $password .= $chars[ mt_rand(0, strlen($chars) - 1) ];
        $password .= $chars[ mt_rand(0, strlen($chars) - 1) ];
    }
    return $password;
}
echo generate_password(6);

方法二

  1. time()获取当前unix时间戳
  2. 将时间戳MD5加密
  3. 将第二步加密的结果,截取 n 位即得想要的密码
function generate_password()
{
    $str = substr(md5(time()), 0, 6);
    return $str ;
}
echo generate_password();

方法三

  1. 在33-126中随机生成一个整数
  2. 将 35 转换成对应的ASCII码字符
  3. 重复以上 1、2 步骤 n 次,连接成 n 位的密码
function create_password($pw_length = 8)
{
    $randed = '';
    for ($i = 0; $i<$pw_length; $i++) {
        $randed.=chr(mt_rand(33, 126));
    }
    return $randed;
}
echo create_password(6);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值