[TASK] Update tags for all rst files for 8.0
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Documentation / Changelog / 8.0 / Feature-73050-AddACSPRNGAPI.rst
1
2 .. include:: ../../Includes.txt
3
4 ==================================
5 Feature: #73050 - Add a CSPRNG API
6 ==================================
7
8 See :issue:`73050`
9
10 Description
11 ===========
12
13 A new cryptographically secure pseudo-random number generator (CSPRNG) has been
14 introduced in TYPO3 core. It takes advantage of the new CSPRNG functions in PHP 7.
15
16
17 API overview
18 ============
19
20 The API resides in the class :php:`\TYPO3\CMS\Core\Crypto\Random`. It provides several
21 methods. Here is a brief overview of the interface:
22
23 .. code-block:: php
24
25     class Random {
26         /**
27          * Generates cryptographic secure pseudo-random bytes
28          */
29         public function generateRandomBytes($length);
30
31         /**
32          * Generates cryptographic secure pseudo-random integers
33          */
34         public function generateRandomInteger($min, $max);
35
36         /**
37          * Generates cryptographic secure pseudo-random hex string
38          */
39         public function generateRandomHexString($length);
40     }
41
42
43 Example
44 -------
45
46 .. code-block:: php
47
48     use \TYPO3\CMS\Core\Crypto\Random;
49     use \TYPO3\CMS\Core\Utility\GeneralUtility;
50
51     // Retrieving random bytes
52     $someRandomString = GeneralUtility::makeInstance(Random::class)->generateRandomBytes(64);
53
54     // Rolling the dice..
55     $tossedValue = GeneralUtility::makeInstance(Random::class)->generateRandomInteger(1, 6);
56
57
58 Impact
59 ======
60
61 None, you can start to use the CSPRNG in your code by now.
62
63 .. index:: PHP-API