Phalcon\Security\Random
Класс Phalcon\Security\Random
Безопасный класс генератора случайных чисел.
Обеспечивает безопасный генератор случайных чисел, который подходит для генерации ключа сеанса в HTTP cookies и т. д.
Он поддерживает следующие безопасные генераторы случайных чисел :
- random_bytes (PHP 7)
- libsodium
- openssl, libressl
- /dev/urandom
Phalcon\\Security\\Random
может быть полезно для:
- Генерация ключей (например, генерация сложных ключей)
- Генерация случайных паролей для новых учетных записей пользователей
- Система шифрования
<?php $random = new \Phalcon\Security\Random(); // Случайная двоичная строка $bytes = $random->bytes(); // Случайная шестнадцатеричная строка echo $random->hex(10); // a29f470508d5ccb8e289 echo $random->hex(10); // 533c2f08d5eee750e64a echo $random->hex(11); // f362ef96cb9ffef150c9cd echo $random->hex(12); // 95469d667475125208be45c4 echo $random->hex(13); // 05475e8af4a34f8f743ab48761 // Случайная строка base62 echo $random->base62(); // z0RkwHfh8ErDM1xw // Случайная строка base64 echo $random->base64(12); // XfIN81jGGuKkcE1E echo $random->base64(12); // 3rcq39QzGK9fUqh8 echo $random->base64(); // DRcfbngL/iOo9hGGvy1TcQ== echo $random->base64(16); // SvdhPcIHDZFad838Bb0Swg== // Случайный URL-безопасная строка base64 echo $random->base64Safe(); // PcV6jGbJ6vfVw7hfKIFDGA echo $random->base64Safe(); // GD8JojhzSTrqX7Q8J6uug echo $random->base64Safe(8); // mGyy0evy3ok echo $random->base64Safe(null, true); // DRrAgOFkS4rvRiVHFefcQ== // Случайный UUID echo $random->uuid(); // db082997-2572-4e2c-a046-5eefe97b1235 echo $random->uuid(); // da2aa0e2-b4d0-4e3c-99f5-f5ef62c57fe2 echo $random->uuid(); // 75e6b628-c562-4117-bb76-61c4153455a9 echo $random->uuid(); // dc446df1-0848-4d05-b501-4af3c220c13d // Случайное число от 0 до $len echo $random->number(256); // 84 echo $random->number(256); // 79 echo $random->number(100); // 29 echo $random->number(300); // 40 // Случайная строка base58 echo $random->base58(); // 4kUgL2pdQMSCQtjE echo $random->base58(); // Umjxqf7ZPwh765yR echo $random->base58(24); // qoXcgmw4A9dys26HaNEdCRj9 echo $random->base58(7); // 774SJD3vgP
Этот класс частично заимствует библиотеку SecureRandom из Ruby
Методы
public bytes ([mixed $len])
Создает случайную двоичную строку метод Random::bytes
возвращает строку и принимает в качестве входных данных значение int, представляющее длину возвращаемых байтов. Если $len не указан, предполагается 16. В будущем он может быть больше. Результат может содержать любой байт: "x00" - "xFF".
<?php $random = new \Phalcon\Security\Random(); $bytes = $random->bytes(); var_dump(bin2hex($bytes)); // Possible output: string(32) "00f6c04b144b41fad6a59111c126e1ee"
public hex ([mixed $len])
Генерирует случайную шестнадцатеричную строку, если $len не указан, предполагается 16. В будущем он может быть больше. Длина результирующей строки обычно больше $len.
<?php $random = new \Phalcon\Security\Random(); echo $random->hex(10); // a29f470508d5ccb8e289
public base58 ([mixed $len])
Генерирует случайную строку base58, если $len не указан, предполагается 16. В будущем он может быть больше. Результат может содержать буквенно-цифровые символы, за исключением 0, O, I и l. Он похож на Phalcon\\Security\\Random:base64
, но был изменен, чтобы избежать не алфавитно-цифровых символов и букв, которые могут выглядеть неоднозначно при печати.
<?php $random = new \Phalcon\Security\Random(); echo $random->base58(); // 4kUgL2pdQMSCQtjE
public base62 ([mixed $len])
Генерирует случайную строку base62, если $len не указан, предполагается 16. В будущем он может быть больше. Он похож на Phalcon\\Security\\Random:base58
, но был изменен, чтобы обеспечить наибольшее значение, которое можно безопасно использовать в URL-адресах без необходимости принимать во внимание дополнительные символы, потому что это [A-Za-z0-9].
<?php $random = new \Phalcon\Security\Random(); echo $random->base62(); // z0RkwHfh8ErDM1xw
public base64 ([mixed $len])
Генерирует случайную строку base64, если $len не указан, предполагается 16. В будущем он может быть больше. Длина результирующей строки обычно больше $len. Формула размера: 4 * ($len / 3), и это нужно округлить до кратного 4.
<?php $random = new \Phalcon\Security\Random(); echo $random->base64(12); // 3rcq39QzGK9fUqh8
public base64Safe ([mixed $len], [mixed $padding])
Генерирует случайную URL-безопасную строку base64, если $len не указан, предполагается 16. В будущем он может быть больше. Длина результирующей строки обычно больше $len. По умолчанию заполнение не создается, так как " = " может использоваться в качестве разделителя URL-адреса. Результат может содержать A-Z, a-z, 0-9, " - " и "_". "="также используется, если $padding имеет значение true. См. RFC 3548 для определения безопасного для URL base64.
<?php $random = new \Phalcon\Security\Random(); echo $random->base64Safe(); // GD8JojhzSTrqX7Q8J6uug
public uuid ()
Генерирует случайный UUID версии 4 (универсальный уникальный идентификатор) UUID версии 4 является чисто случайным (за исключением версии). Он не содержит значимой информации, такие как MAC-адрес, время и т. д. Подробные сведения о UUID см. В документе RFC 4122. Этот алгоритм устанавливает номер версии (4 бита), а также два зарезервированных бита. Все остальные биты (оставшиеся 122 бита) устанавливаются с помощью случайного или псевдослучайного источника данных. Версия 4 идентификаторы UUID имеет вид хххххххх-ХХХХ-4xxx-yxxx-ХХХХХХХХХХ, где X-это шестнадцатеричное число, а y-один из 8, 9, A или B (например, f47ac10b-58cc-4372-a567-0e02b2c3d479).
<?php $random = new \Phalcon\Security\Random(); echo $random->uuid(); // 1378c906-64bb-4f81-a8d6-4ae1bfcdec22
public number (mixed $len)
Генерирует случайное число от 0 до $len возвращает целое число: 0 <= result <= $len.
<?php $random = new \Phalcon\Security\Random(); echo $random->number(16); // 8
protected base (mixed $alphabet, mixed $base, [mixed $n])
Создает случайную строку на основе числа ($base) символов ($alphabet). Если $n не указан, предполагается 16. В будущем он может быть больше.