Мне нужно создать только одноразовое использование и уникальный как нашивка токены для банковского приложения (только для производства) для представления счетов и транзакций, каким будет безопасный и подходящий способ сделать это?
Могу ли я использовать random_bytes()
?
Было бы предпочтительно, если бы токены были буквенно-цифровыми, а не просто числами.
Например, токены Stripe выглядят как tok_382r1O2IZ7IgsfwNFATX4xax
Если вы используете PHP 7, новый random_bytes()
Функция является безопасным генератором случайных чисел / строк и является рекомендуемым способом сделать это на PHP.
Если вы еще не перешли на PHP 7, есть совместимая альтернатива для PHP 5 на Github. random_compat.
Вы можете использовать следующее:
bin2hex(openssl_random_pseudo_bytes(8))
Вот доки о том, как использовать это для ваших нужд.
Вы можете использовать функцию bin2hex для преобразования байтов в базовую строку 62.
$token = bin2hex(random_bytes(16)); //generates a crypto-secure 32 characters long
Вы можете легко префиксировать это, просто добавив строку в начало.