Генерация токенов для транзакций

Мне нужно создать только одноразовое использование и уникальный как нашивка токены для банковского приложения (только для производства) для представления счетов и транзакций, каким будет безопасный и подходящий способ сделать это?

Могу ли я использовать random_bytes()?

Было бы предпочтительно, если бы токены были буквенно-цифровыми, а не просто числами.
Например, токены Stripe выглядят как tok_382r1O2IZ7IgsfwNFATX4xax

1

Решение

Если вы используете PHP 7, новый random_bytes() Функция является безопасным генератором случайных чисел / строк и является рекомендуемым способом сделать это на PHP.

Если вы еще не перешли на PHP 7, есть совместимая альтернатива для PHP 5 на Github. random_compat.

1

Другие решения

Вы можете использовать следующее:

bin2hex(openssl_random_pseudo_bytes(8))

Вот доки о том, как использовать это для ваших нужд.

1

Вы можете использовать функцию bin2hex для преобразования байтов в базовую строку 62.

$token = bin2hex(random_bytes(16)); //generates a crypto-secure 32 characters long

Вы можете легко префиксировать это, просто добавив строку в начало.

1