アカウントのアクティブ化に使用する確認コードを生成しています。あなたはおそらく以前にこの種のことを見たことがあるでしょう。
私の質問:次のような複雑な式を使用してこのコードを生成する場合:
md5(md5(time().'helloguys'.rand(0,9999)));
32文字と数字のランダムな文字列を生成するよりも本当に良いgj3dI3OGwo5Enf...
ですか?
アカウントのアクティブ化に使用する確認コードを生成しています。あなたはおそらく以前にこの種のことを見たことがあるでしょう。
私の質問:次のような複雑な式を使用してこのコードを生成する場合:
md5(md5(time().'helloguys'.rand(0,9999)));
32文字と数字のランダムな文字列を生成するよりも本当に良いgj3dI3OGwo5Enf...
ですか?
いいえ、ハッシュを使用するのは良くありません。32個のランダムな文字を選択する方が安全です(予測しにくい)。(数字は文字です。)適切なシード(/ dev / randomからの数バイト)を使用して、適切な(「暗号化」)乱数ジェネレーターを使用します。時間を種として使わないでください。
エリクソンに同意します、使用するようにアドバイスするかもしれません
pwgen -1 -s
* nixのコマンドは、あなたが発明する可能性のあるあらゆる手順よりも優れた仕事をします。
プログラムで文字列を生成したい場合は、
<?php
$better_token = md5(uniqid(rand(),1));
?>
これにより、衝突前に非常に優れたレベルのランダム性が得られます。
さらに高いレベルのセキュリティが必要な場合は、http://www.random.org/でランダムシーケンスを生成することを検討してください。