php生成随机密码程序代码
生成随机密码方法有很多种,最简单的就是使用php mt_rand()函数来直接生成一串数字了,下面我来给大家介绍php生成随机密码程序
最简单的办法mt_rand函数.
mt_rand() 使用 Mersenne Twister 算法返回随机整数。
在本例中,我们会返回一些随机数,代码如下:
- <?php
- echo(mt_rand());
- echo(mt_rand());
- echo(mt_rand(10,100));
- ?>
- //输出类似:
- //3150906288
- //513289678
- //35
上面相对来说安全指数很低的,因为全是数字哦,下面另名一种
1、预置一个的字符串 $chars,包括 a – z,A – Z,0 – 9,以及一些特殊字符
2、在 $chars 字符串中随机取一个字符
实例代码如下
- function generate_password( $length = 8 ) {
- // 密码字符集,可任意添加你需要的字符
- $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_ []{}<>~`+=,.;:/?|';
- $password = '';
- for ( $i = 0; $i < $length; $i++ )
- {
- // 这里提供两种字符获取方式
- // 第一种是使用 substr 截取$chars中的任意一位字符;
- // 第二种是取字符数组 $chars 的任意元素
- // $password .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
- $password .= $chars[ mt_rand(0, strlen($chars) - 1) ];
- }
- return $password;
- }
一个朋友提供的md5()函数的返回值的缘故,生成的密码只包括字母和数字,不过也算是一个不错的方法,算法思想:
1、time() 获取当前的 Unix 时间戳
2、将第一步获取的时间戳进行 md5() 加密
3、将第二步加密的结果,截取 n 位即得想要的密码
实例代码如下:
- function get_password( $length = 8 )
- {
- $str = substr(md5(time()), 0, 6);
- return $str;
- }