当前位置: 首页 > 面试题库 >

生成加密安全令牌

黄元章
2023-03-14
问题内容

为了生成用于访问我们的API的32个字符的令牌,我们目前使用:

$token = md5(uniqid(mt_rand(), true));

我已经读到,这种方法不是基于密码的安全性,因为它基于系统时钟,这openssl_random_pseudo_bytes将是一个更好的解决方案,因为它很难预测。

如果是这种情况,等效代码将是什么样?

我猜是这样的,但是我不知道这是否对…

$token = md5(openssl_random_pseudo_bytes(32));

我应该传递给函数什么长度也有意义?


问题答案:

这是正确的解决方案:

$token = bin2hex(openssl_random_pseudo_bytes(16));

# or in php7
$token = bin2hex(random_bytes(16));


 类似资料:
  • 问题内容: PHP的函数不能提供良好的随机数。因此,我开始使用据说效果更好的产品。但是这些结果有多好?有什么方法可以再次改善它们? 我的点子: 这应该给您“完美的”随机数,不是吗? 问题答案: 伪随机数生成器(PRNG)是非常复杂的野兽。 没有真正的“完美”随机数生成器-实际上,可以通过数学函数完成的最好的操作是伪随机数-对于大多数意图和目的,它们似乎足够随机。 实际上,从PRNG返回的数字中执行

  • 无论是开发Web应用的开发者还是企图利用Web应用漏洞的攻击者,对于Web程序安全这个话题都给予了越来越多的关注。特别是最近CSDN密码泄露事件,更是让我们对Web安全这个话题更加重视,所有人都谈密码色变,都开始检测自己的系统是否存在漏洞。那么我们作为一名Go程序的开发者,一定也需要知道我们的应用程序随时会成为众多攻击者的目标,并提前做好防范的准备。 很多Web应用程序中的安全问题都是由于轻信了第

  • 密码学是加密和解密数据的科学,它使用户能够存储敏感信息或在不安全的网络上传输敏感信息,以便只能由预期的接收者读取。 可以在没有任何特殊措施的情况下读取和理解的数据称为明文,而伪装明文以隐藏其实质的方法称为加密。加密的明文称为密文,将加密数据恢复为纯文本的过程称为解密。 分析和破坏安全通信的科学被称为密码分析。执行相同操作的人也称为攻击者。 密码学可以是强或弱的,并且强度是通过恢复实际明文所需的时间

  • 问题内容: 有人可以推荐使用Apache或LGPL Java许可下的安全密码生成器吗? 问题答案: 我不必担心生成令人难以置信的强大一次性密码。设置较长的密码,如果您限制密码的有效期限,那么蛮力应该不是问题。如果密码仅在1个小时内有效,那么如果密码未使用则不会有问题。在这段时间内,不太可能有人会用蛮力破解它。 同样重要的是,您只能一次使用一次密码。这样,如果密码被截获,用户将在一次密码到期时注意到

  • 我正在尝试使用javax.crypto.ciper加密/解密数据,其中我将转换指定为aes/ecb/pkcs5padding。 在我的本地机器中,jcesecurity.isrestricted()返回FALSE,但是当它在服务器上运行时,相同的方法返回true。由于服务器上的这种情况,系统不会为密码分配正确的权限。 不确定,JceSecurity restriction确切设置在哪里。感谢你的帮

  • 常见的安全误区 黑客、网络安全只存在于虚拟世界 如果我说以后黑客不但可以控制你的汽车开窗、刹车,甚至还能远程“强奸”,你信吗? 许多初创公司,有基于互联网的Sex应用。杜蕾斯公司也有一款Sex over Internet产品叫做Fundawear。如果这个产品出了安全问题或者协议缺陷,被黑客劫持了连接,实现中间人攻击,会出现什么样的后果? 360公司最近发现了时下最火的电动汽车Tesla Mode