随机字符串是一个很好的验证码

dav*_*ave 7 php security account registration

我正在生成用于帐户激活的验证码.你以前可能已经看过这种事了.

我的问题:如果我使用这样的复杂公式生成此代码:

md5(md5(time().'helloguys'.rand(0,9999)));
Run Code Online (Sandbox Code Playgroud)

它真的比生成一个包含32个字符和数字的随机字符串更好gj3dI3OGwo5Enf...吗?

eri*_*son 6

不,使用哈希并不是更好.选择32个随机字符会更安全(不太可预测).(数字是字符.)使用良好的("加密")随机数生成器,具有良好的种子(来自/ dev/random的一些字节).不要把时间当作种子.

  • @Andrew:没有人应该输入这个代码...他们要么点击链接,要么他们不能,他们应该复制和粘贴.如果他们无法弄明白......我很惊讶他们把它变成了他们的电子邮件帐户. (5认同)
  • 我打算用for循环生成32个随机字符.这种方法有什么问题?对于普通网站进行帐户验证而言,这样做是否合适?(我的意思是即使我是推特或其他东西,对于手头的目的来说仍然没有问题) (2认同)