【问题标题】:Generate a random password in PHP [duplicate]在PHP中生成一个随机密码[重复]
【发布时间】:2015-10-14 19:31:27
【问题描述】:

我想用 PHP 生成一个随机密码,稍后将其发送给注册的用户。我怎样才能做到最好?我已经尝试使用rand 函数,但我没有让它工作。最好有一个函数为我做这件事,所以我只需要调用类似

$pw = generatePW();

感谢您的帮助。

【问题讨论】:

  • 你看过任何教程或其他线程吗?
  • 您是否通过电子邮件发送密码?
  • @hRdCoder 这就是我想要的,是的
  • 好的,就密码安全性而言,通过电子邮件以明文形式发送密码通常不是一个好主意。
  • 好吧......好吧,它应该是一个一次性密码,登录一次然后更改它(以便于邮件确认)

标签: php random passwords


【解决方案1】:

您可以通过以下功能轻松实现:

function random_string($length)
{
   $string = "";
   $chars = "abcdefghijklmanopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
   $size = strlen($chars);
   for ($i = 0; $i < $length; $i++) {
       $string .= $chars[rand(0, $size - 1)];
   }
   return $string; 
}

这里首先生成一个空字符串,然后定义一个包含所有字符的字符串,还可以添加#? 或任何你想要的。在您还计算了字符数之后,您可以开始填充新字符串。您只需使用 for 循环来执行此操作。每次调用循环内容时,都会在您的空字符串中添加一个随机字符(来自您的$char)。

您只需键入以下内容即可使用此功能(例如,如果您想将随机密码存储在变量中):

$password = rand_string(15) //the number specified in brackets is the amount of characters in your password

如果您遇到任何问题,请告诉我。

【讨论】:

  • 你从未设置过$string。每次通话都返回 '',可能意味着 $string .=?
  • 当然,更新了,谢谢提示
  • 这对我有用,谢谢。但我会考虑发送激活链接而不是密码...
  • Ewww。不要使用rand() 作为密码,而是使用random_int()
猜你喜欢
  • 2011-08-31
  • 1970-01-01
  • 2021-04-17
  • 1970-01-01
  • 2012-07-28
  • 2011-04-18
  • 2021-06-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多