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