安全地比较字符串和生成随机值
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 2.7,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
安全地比较字符串和生成随机值
Symfob娱乐下载ony Security组件提供了一组与安全性相关的实用程序。Symfony使用了这些实用程序,但是如果您想解决它们所ob娱乐下载解决的问题,也应该使用它们。
请注意
本文中描述的函数是在PHP 5.6或7中引入的。类提供了一个polyfillob娱乐下载Symfony Polyfill Component.
比较字符串
比较两个字符串所需的时间取决于它们的差异。这可以被攻击者使用,当两个字符串表示一个密码,例如;它被称为a计时攻击.
比较两个密码时,应该使用hash_equals功能:
1 2 3
如果(hash_equals ($knownString,$userInput)) {/ /……}
生成安全随机字符串
每当需要生成安全的随机字符串时,强烈建议使用random_bytes功能:
1
$随机= random_bytes (10);
该函数返回一个随机字符串,适合加密使用,由作为参数传递的字节数组成(在上面的示例中为10)。
提示
的random_bytes ()
函数返回二进制字符串,该字符串可能包含\ 0
的性格。在一些常见的场景中,这可能会导致问题,例如将该值存储在数据库中或将其作为URL的一部分。解决方案是对返回的值进行编码或散列random_bytes ()
(要做到这一点,您可以使用简单的base64_encode ()
PHP函数)。
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。