Spec-Zone.ru › Phalcon 3

Класс Phalcon\Security\Random

Исходный код на GitHub

Класс генератора случайных чисел для обеспечения безопасности.

Обеспечивает генерацию случайных чисел, подходящих для создания ключей сессий в 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API