@Quelagrate

Как при регистрации пользователя на сайте автоматически генерировать в базе данных универсальный ключ идентификации по типу автоматического ID?

Здравствуйте, коллеги!

Суть вопроса такова: создаю систему регистрации/авторизации на сайте, как правильно настроить поле базы данных, что бы при заносе пользователя в БД в определенном поле генерировался его персональный идентификационный ключ, который в будущем он сможет использовать для авторизации на сайте? Нужно что-то по-типу поля ID, но с использованием не только цифр, но и заглавных букв англ.алфавита, также этот ключ должен быть уникальным и генерироваться совершенно рандомно.

Например в поле "key" при регистрации у пользователя должен сгенерироваться подобный ключ :
DF09DK817F61HYDR

Благодарю за помощь!
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ответы на вопрос 3
rozhnev
@rozhnev Куратор тега PHP
Fullstack programmer, DBA, медленно, дорого
Можно в РНР использовать нечто подобное
<?php
$random_string = strtoupper(bin2hex(random_bytes(12)));

echo $random_string;


PHP online
Ответ написан
@rrambo
юзай uuid некоторые субд поддерживают из каропки
Ответ написан
Комментировать
Rst0
@Rst0
по вашим условиям такая функция:

function token($data) { 
    return  mb_substr(strtoupper(preg_replace('~[^-a-z0-9_]+~','', password_hash(strtolower(iconv("utf-8", "us-ascii//TRANSLIT", trim(preg_replace('~[^\\pL0-9_]+~u', '-', $data), "-"))),PASSWORD_BCRYPT, ['cost' => 12,]))),4,16); 
}
$first_name = 'Василий';
$last_name = 'Petrov';
$date = date('h:i:s A');

$token = token($first_name . $last_name . $_SERVER['HTTP_USER_AGENT'].$date);
echo 'токен: ' .$token . '  длина: '. strlen($token). "\n";
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы