Блог веб разработки статьи | видеообзоры | исходный код

Блог веб разработки статьи | видеообзоры | исходный код

webfanat вконтакте webfanat youtube

Генерация строк php

Генерация  строк php

Всем привет. Бывает возникают ситуации когда нам необходимо генерировать уникальную строку из произвольно взятых символов. Это может быть хэш, токен и т.п.

Для генерации уникальных строк в php мы можем воспользоваться следующими функциями:

random_bytes() - генерирует безопасные псевдослучайные байты

openssl_random_pseudo_bytes() - генерирует псевдослучайную последовательность байт

В качестве аргумента данные функции принимают целое число(количество символов строки).

$token1 = random_bytes(20);

$token2 = openssl_random_pseudo_bytes(20);

var_dump($token1,$token2);

В результате у нас вернется две строки в бинарном представлении из двадцати символов. Следовательно такие строки нас не устраивают и мы хотим привести их к читаемому виду.

Для этого мы можем воспользоваться следующими функциями:

bin2hex() - данная функция преобразует бинарные данные в шестнадцатеричное представление

base64_encode() — Кодирует данные в формат MIME base64

Пример с bin2hex() :

$token1 = bin2hex(random_bytes(20));

$token2 = bin2hex(openssl_random_pseudo_bytes(20));

var_dump($token1,$token2);

В результате мы получаем две строки длиной 20 символов каждая, состоящих из латинских символов и цифр.( 8acf74f51fcd234f79e9ee9e831a9880b0743ba8)

Пример c base64_encode():

$token1 = base64_encode(random_bytes(20));

$token2 = base64_encode(openssl_random_pseudo_bytes(20));

var_dump($token1,$token2);

Здесь же у нас помимо латинских символов и цифр, в строках присутствуют символы (=,+,/). И еще заметьте, что попадаются символы в разном регистре и неизменным остается последний символ строки (=).(eRwAW1UUoeRkPo0BiGOG92ttk8Q=)

Вот так мы можем генерировать случайную уникальную строку на php.

На этом данная статья подошла к концу. Желаю успехов и удачи! Пока!

Оцените статью:

Статьи

Комментарии

Внимание!!! Комментарий теперь перед публикацией проходит модерацию

Все комментарии отправлены на модерацию

Реклама

Запись экрана

Данное расширение позволяет записывать экран и выводит видео в формате webm