安全地生成随机值

编辑该页面

警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 3.2,不再维护。

这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。

安全地生成随机值

Symfob娱乐下载ony的安全组件提供了一系列漂亮的与安全相关的实用程序。这些实用程序使用Symfony,但你也应该使用它们,如果ob娱乐下载你想解决这个问题他们解决。

请注意

介绍了本文中描述的功能在PHP 5.6或7。旧的PHP版本,polyfill是提供的ob娱乐下载Symfony Polyfill组件

比较字符串

比较两个字符串的时间取决于他们之间的分歧。这可以被攻击者使用时两个字符串代表一个密码例如;它被称为计时攻击

当比较两个密码时,您应该使用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函数)。

生成一个安全的随机数

如果您需要生成一个密码安全的随机整数,你应该使用random_int功能:

1
美元随机= random_int (1,10);
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。