免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6164 | 回复: 19

循环的问题 [复制链接]

论坛徽章:
0
发表于 2004-06-04 13:34 |显示全部楼层

  1. function Random_Password($length) {
  2. srand(date("s"));
  3. $possible_charactors = "abcdefgPQRSTUVhijkLMNOWXYZ";
  4. $string = "";
  5. while(strlen($string)<$length) {
  6. $string .= substr($possible_charactors,(rand()%(strlen($possible_charactors))),1);
  7. }
  8. return($string);
  9. }
复制代码


用以上代码产生乱数

如果嵌入一个循环中

以使每一次循环产生的乱数不相同?

请帮忙

谢谢

论坛徽章:
0
发表于 2004-06-04 13:51 |显示全部楼层

循环的问题

原帖由 "hughr" 发表:

用以上代码产生乱数

如果嵌入一个循环中

以使每一次循环产生的乱数不相同?

请帮忙

谢谢

不是随便乱数就好。如果要密码不容易猜到,又要好记住,一般会生成一个元音辅音搭配的单词来,叫什么可以读出来的(Pronounceable )的密码,好在有前辈已经写好了这样的东西了,我们抄来就可以了。

  1. // +----------------------------------------------------------------------+
  2. // | PHP Pronounceable Password Generator                                 |
  3. // +----------------------------------------------------------------------+
  4. // | Author: Max Dobbie-Holman <max@blueroo.net>;                          |
  5. // +----------------------------------------------------------------------+
  6. //
  7. // View the demo at http://www.blueroo.net/max/pwdgen.php

  8. /**
  9. * Generates an 8 character pronounceable password.
  10. *
  11. * @author        Max Dobbie-Holman <max@blueroo.net>;
  12. * @version       1.0
  13. */

  14. function mkPasswd() {

  15.         $consts='bcdgklmnprst';
  16.         $vowels='aeiou';

  17.         for ($x=0; $x < 6; $x++) {
  18.                 mt_srand ((double) microtime() * 1000000);
  19.                 $const[$x] = substr($consts,mt_rand(0,strlen($consts)-1),1);
  20.                 $vow[$x] = substr($vowels,mt_rand(0,strlen($vowels)-1),1);
  21.         }
  22.         return $const[0] . $vow[0] .$const[2] . $const[1] . $vow[1] . $const[3] . $vow[3] . $const[4];

  23. }

复制代码

夏天到了,出门在外,注意防晒。

夏天到了,出门在外,注意防晒。

论坛徽章:
0
发表于 2004-06-04 13:53 |显示全部楼层

循环的问题

呵呵

我不是要这种效果

我要产生每次循环都不同的就可以了

:)谢谢友情提醒……

能不能再讲解一下

循环之后改变的代码呢?

论坛徽章:
0
发表于 2004-06-04 13:57 |显示全部楼层

循环的问题


  1. function mkPasswd() {

  2.    $consts='bcdgklmnprst';
  3.    $vowels='aeiou';

  4.    for ($x=0; $x < 6; $x++) {
  5.       mt_srand ((double) microtime() * 1000000);
  6.       $const[$x] = substr($consts,mt_rand(0,strlen($consts)-1),1);
  7.       $vow[$x] = substr($vowels,mt_rand(0,strlen($vowels)-1),1);
  8.    }
  9.    return $const[0] . $vow[0] .$const[2] . $const[1] . $vow[1] . $const[3] . $vow[3] . $const[4];

  10. }
复制代码


可以了:)
sports98 该用户已被删除
发表于 2004-06-04 14:54 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
发表于 2004-06-04 15:10 |显示全部楼层

循环的问题

srand(date("s");
改为
srand();
即可
改为
srand((double)microtime()*1000000);
更好
sports98 该用户已被删除
发表于 2004-06-04 15:21 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
发表于 2004-06-04 15:42 |显示全部楼层

循环的问题

汗……

一大片我都看不明白的

或者是一知半解

…………汗汗

另外的问题:

现在每次循环可以实现了

但是我用$sun=mkPasswd();

再通过$sun调用mkPasswd()的时候

每次循环得出的乱数就一样了

有请这么多位再次讲讲

hughr不懂得写PHP

但是有些问题无法解决想试着试试……

:)

多谢
sports98 该用户已被删除
发表于 2004-06-04 15:50 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
发表于 2004-06-04 16:04 |显示全部楼层

循环的问题

sport98说的没错

可能是我表达错误了

但是这一步之后

每次循环之后的值就变成一样的了

请教如何解决?

汗……hughr说多谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP