php生成随机密码程序代码

生成随机密码方法有很多种,最简单的就是使用php mt_rand()函数来直接生成一串数字了,下面我来给大家介绍php生成随机密码程序

最简单的办法mt_rand函数.

mt_rand() 使用 Mersenne Twister 算法返回随机整数。

在本例中,我们会返回一些随机数,代码如下:

  1. <?php
  2. echo(mt_rand());
  3. echo(mt_rand());
  4. echo(mt_rand(10,100));
  5. ?>
  6. //输出类似:
  7. //3150906288
  8. //513289678
  9. //35

上面相对来说安全指数很低的,因为全是数字哦,下面另名一种

1、预置一个的字符串 $chars,包括 a – z,A – Z,0 – 9,以及一些特殊字符

2、在 $chars 字符串中随机取一个字符

实例代码如下

  1. function generate_password( $length = 8 ) {
  2. // 密码字符集,可任意添加你需要的字符
  3. $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_ []{}<>~`+=,.;:/?|';
  4. $password = '';
  5. for ( $i = 0; $i < $length; $i++ )
  6. {
  7. // 这里提供两种字符获取方式
  8. // 第一种是使用 substr 截取$chars中的任意一位字符;
  9. // 第二种是取字符数组 $chars 的任意元素
  10. // $password .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
  11. $password .= $chars[ mt_rand(0, strlen($chars) - 1) ];
  12. }
  13. return $password;
  14. }

一个朋友提供的md5()函数的返回值的缘故,生成的密码只包括字母和数字,不过也算是一个不错的方法,算法思想:

1、time() 获取当前的 Unix 时间戳

2、将第一步获取的时间戳进行 md5() 加密

3、将第二步加密的结果,截取 n 位即得想要的密码

实例代码如下:

  1. function get_password( $length = 8 )
  2. {
  3. $str = substr(md5(time()), 0, 6);
  4. return $str;
  5. }