Класс Phalcon\Security\Random
Класс генератора случайных чисел для обеспечения безопасности.
Обеспечивает генерацию случайных чисел, подходящих для создания ключей сессий в HTTP-cookie и т. п.
Поддерживает следующие генераторы случайных чисел для обеспечения безопасности:
- random_bytes (PHP 7)
- libsodium
- openssl, libressl
- /dev/urandom
Phalcon\Security\Random может быть полезен для:
- Генерации ключей (например, для создания сложных ключей)
- Генерации случайных паролей для новых учетных записей пользователей
- Систем шифрования
$random = new \Phalcon\Security\Random(); // Random binary string $bytes = $random->bytes(); // Random hex string 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 // Random base64 string echo $random->base64(12); // XfIN81jGGuKkcE1E echo $random->base64(12); // 3rcq39QzGK9fUqh8 echo $random->base64(); // DRcfbngL/iOo9hGGvy1TcQ== echo $random->base64(16); // SvdhPcIHDZFad838Bb0Swg== // Random URL-safe base64 string echo $random->base64Safe(); // PcV6jGbJ6vfVw7hfKIFDGA echo $random->base64Safe(); // GD8JojhzSTrqX7Q8J6uug echo $random->base64Safe(8); // mGyy0evy3ok echo $random->base64Safe(null, true); // DRrAgOFkS4rvRiVHFefcQ== // Random 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 // Random number between 0 and $len echo $random->number(256); // 84 echo $random->number(256); // 79 echo $random->number(100); // 29 echo $random->number(300); // 40 // Random base58 string 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 возвращает строку и принимает на вход целое число, представляющее длину в байтах, которая должна быть возвращена. Если $len не указан, предполагается значение 16. В будущем это значение может быть увеличено. Результат может содержать любой байт: “x00” - “xFF”.
$random = new \Phalcon\Security\Random(); $bytes = $random->bytes(); var_dump(bin2hex($bytes)); // Possible output: string(32) "00f6c04b144b41fad6a59111c126e1ee"
public hex ([mixed $len])
Генерирует случайную шестнадцатеричную строку Если $len не указан, предполагается значение 16. В будущем это значение может быть увеличено. Длина результирующей строки обычно больше или равна $len.
$random = new \Phalcon\Security\Random(); echo $random->hex(10); // a29f470508d5ccb8e289
public base58 ([mixed $n])
Генерирует случайную строку в формате base58 Если $len не указан, предполагается значение 16. В будущем это значение может быть увеличено. Результат может содержать буквенно-цифровые символы, за исключением 0, O, I и l. Он похож на Base64, но был изменён для исключения как небуквенно-цифровых символов, так и букв, которые могут быть неоднозначными при выводе.
$random = new \Phalcon\Security\Random(); echo $random->base58(); // 4kUgL2pdQMSCQtjE
public base64 ([mixed $len])
Генерирует случайную строку в формате base64 Если $len не указан, предполагается значение 16. В будущем это значение может быть увеличено. Длина результирующей строки обычно больше или равна $len. Формула размера: 4 *( $len / 3), и это значение должно быть округлено до кратного 4.
$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.
$random = new \Phalcon\Security\Random(); echo $random->base64Safe(); // GD8JojhzSTrqX7Q8J6uug
public uuid ()
Генерирует случайный UUID версии 4 (универсальный уникальный идентификатор). UUID версии 4 является чисто случайным (за исключением версии). Он не содержит значимой информации, такой как MAC-адрес, время и т. п. См. RFC 4122 для получения подробной информации об UUID. Этот алгоритм устанавливает номер версии (4 бита) и два зарезервированных бита. Все остальные биты (оставшиеся 122 бита) устанавливаются с использованием случайного или псевдослучайного источника данных. UUID версии 4 имеют вид xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx, где x — любая шестнадцатеричная цифра, а y — одна из 8, 9, A или B (например, f47ac10b-58cc-4372-a567-0e02b2c3d479).
$random = new \Phalcon\Security\Random(); echo $random->uuid(); // 1378c906-64bb-4f81-a8d6-4ae1bfcdec22
public number (mixed $len)
Генерирует случайное число от 0 до $len Возвращает целое число: 0 <= результат <= $len.
$random = new \Phalcon\Security\Random(); echo $random->number(16); // 8
© 2011–2017 Phalcon Framework Team
Licensed under the Creative Commons Attribution License 3.0.
https://docs.phalconphp.com/en/latest/api/Phalcon_Security_Random.html