8000 Fix #6103 · symfony/symfony-docs@ce8b068 · GitHub
[go: up one dir, main page]

Skip to content

Commit ce8b068

Browse files
committed
Fix #6103
1 parent ddd3478 commit ce8b068

File tree

1 file changed

+11
-22
lines changed

1 file changed

+11
-22
lines changed

< 8000 a class="Link--primary prc-Link-Link-85e08" href="#diff-7ce52977bc957a1d826bf881a1cab8a4046d1525ebc1fb082cf2c93e06b4b0d8" data-analytics-opt-out="true">components/security/secure_tools.rst

Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -10,38 +10,27 @@ Generating a Secure random Number
1010

1111
Whenever you need to generate a secure random number, you are highly
1212
encouraged to use the Symfony
13-
:class:`Symfony\\Component\\Security\\Core\\Util\\SecureRandom` class::
13+
:phpfunction:`random_bytes` function::
1414

15-
use Symfony\Component\Security\Core\Util\SecureRandom;
15+
$random = random_bytes(10);
1616

17-
$generator = new SecureRandom();
18-
$random = $generator->nextBytes(10);
19-
20-
The
21-
:method:`Symfony\\Component\\Security\\Core\\Util\\SecureRandom::nextBytes`
22-
method returns a random string composed of the number of characters passed as
23-
an argument (10 in the above example).
24-
25-
The SecureRandom class works better when OpenSSL is installed. But when it's
26-
not available, it falls back to an internal algorithm, which needs a seed file
27-
to work correctly. Just pass a file name to enable it::
28-
29-
use Symfony\Component\Security\Core\Util\SecureRandom;
30-
31-
$generator = new SecureRandom('/some/path/to/store/the/seed.txt');
32-
33-
$random = $generator->nextBytes(10);
34-
$hashedRandom = md5($random); // see tip below
17+
The function returns a random string, suitable for cryptographic use, of
18+
the number bytes passed as an argument (10 in the above example).
3519

3620
.. note::
3721

3822
If you're using the Symfony Framework, you can get a secure random number
3923
generator via the ``security.secure_random`` service.
4024

25+
.. note::
26+
27+
PHP versions 7.0.0 and up provide the ``random_bytes()`` function natively,
28+
on lower versions of PHP a polyfill is provided.
29+
4130
.. tip::
4231

43-
The ``nextBytes()`` method returns a binary string which may contain the
32+
The ``random_bytes()`` function returns a binary string which may contain the
4433
``\0`` character. This can cause trouble in several common scenarios, such
4534
as storing this value in a database or including it as part of the URL. The
46-
solution is to hash the value returned by ``nextBytes()`` (to do that, you
35+
solution is to hash the value returned by ``random_bytes()`` (to do that, you
4736
can use a simple ``md5()`` PHP function).

0 commit comments

Comments
 (0)
0