【发布时间】:2014-07-25 02:28:51
【问题描述】:
在某些情况下,我需要创建随机 md5 哈希。你知道最好/最安全的方法是什么吗?
一些用例
- 验证电子邮件地址
- 重置密码
- 某种用于身份验证的会话 ID,而不是密码(例如:当有人点击“记住我”时,我不想将通行证存储在 cookie 中)
背景
我知道rand() 不应该用于安全相关的应用程序。出于这个原因,我选择了:
md5( uniqid(mt_rand(),true) );
现在我在php manual 中读到关于uniqid(),它不得用于安全目的。哪种是有意义的,因为它通常只给出时间戳之类的东西。
但是与随机前缀 - mt_rand() 结合时是否可以,就像我一样,或者在这种情况下应该使用更好的东西吗?
提前谢谢!
【问题讨论】:
-
如果有帮助,请参阅 this。
-
可以使用
base64_encodephp.net/manual/en/function.base64-encode.php进行编码。 -
@Log1cツ:谢谢,里面有很多东西!最重要的可能是函数
openssl_random_pseudo_bytes()作为替代。 -
@Prava-MindfireSolutions:编码不是问题,它的数据也是问题(base64 也可以很容易地被解码/“反转”)。
标签: php hash md5 uniqueidentifier