2011-12-15 13 views
1

25文字のランダムな文字列を生成するための小さなスクリプトがあります。それは、ある文字列を作成し、約70時間の%と他の回のみ動作10.ランダムな文字列を作成するのに問題があります

$unique = substr(md5(microtime()),rand(0,26),25); 

私の目標は、関数を作成することなく、(小文字)の文字と数字のランダムな文字列を持つことである

+0

あなたは10の文字のみまたは何か他のものを意味しています? –

答えて

3

これは、ランダムな長さにrand(0,26)でカットしているためです。

は、代わりにこれを試してみてください:

$unique = substr(md5(microtime()), 0, 25); 
+0

ありがとうございます。それは素晴らしい仕事でした! – Tiny

0

をMD5(微小時間を())を使用しないでください。あなたはmd5(rand())より安全だと思うかもしれませんが、そうではありません。

適切な試行回数と同期の方法(ウェブサイトの時計のようなもの)では、microtime()の結果をミリ秒に予測できます。わずか10によって

使用のMD5(RAND())

またはあなたはそれがより安全な使用のMD5になりたい場合は(微小時間()。ランド())

+0

または、彼は組み込み関数uniq_id()を使うことができます:) –

関連する問題