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

Ссылка скопирована
1 ответ
await queryRunner.query(`CREATE OR REPLACE FUNCTION random_hex(int) RETURNS TEXT as $$             SELECT string_agg(substring('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!#$%&()*+,-./:;<=>?@[]^', ceil(random() * 85)::integer, 1), '') FROM generate_series(1, $1);         $$ language sql;`);

await queryRunner.query(`CREATE OR REPLACE FUNCTION random_hex(int) RETURNS TEXT as $$ SELECT string_agg(substring('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!#$%&()*+,-./:;<=>?@[]^', ceil(random() * 85)::integer, 1), '') FROM generate_series(1, $1); $$ language sql;`);

Дополнительно:

Зачем?

  • Slava Rozhnev, иначе пароль не сильный... если он, например, заглавный символ не добавил
  • YakovSpb, при чем тут SQL вообще?
    Твой код конечно может на фронте проверять "силу" пароля и давать рекомендации, но для зарегистрированного пользователя вы только считаете хеш и все сравнения идут уже с хешем.
    Пароли в открытом виде в базе нельзя хранить.
  • YakovSpb, Сделайте то что нужно в коде. SQL не про это
  • Slava Rozhnev, задача стоит в sql сделать
  • Stalker_RED, задача стоит в sql сделать
  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Артём Dev Ответ

    Для добавления обязательных символов к случайному паролю вам необходимо создать функцию, которая будет генерировать пароль и добавлять к нему обязательные символы. Ниже приведен пример кода на языке программирования PHP, который демонстрирует этот процесс:

    function generatePassword($length, $addSymbols = false) {
        $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
        $symbols = '!@#$%^&*()_+-=[]{}|;:,.?';
     
        if ($addSymbols) {
            $chars .= $symbols;
        }
     
        $password = '';
        $charsLength = strlen($chars);
     
        for ($i = 0; $i < $length; $i++) {
            $password .= $chars[rand(0, $charsLength - 1)];
        }
     
        return $password;
    }
     
    $length = 8; // Длина пароля
    $addSymbols = true; // Флаг добавления обязательных символов
     
    $password = generatePassword($length, $addSymbols);
    echo $password;

    function generatePassword($length, $addSymbols = false) { $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $symbols = '!@#$%^&*()_+-=[]{}|;:,.?'; if ($addSymbols) { $chars .= $symbols; } $password = ''; $charsLength = strlen($chars); for ($i = 0; $i < $length; $i++) { $password .= $chars[rand(0, $charsLength - 1)]; } return $password; } $length = 8; // Длина пароля $addSymbols = true; // Флаг добавления обязательных символов $password = generatePassword($length, $addSymbols); echo $password;

    В этом коде функция generatePassword принимает два параметра: $length (длина пароля) и $addSymbols (флаг для добавления обязательных символов). Если $addSymbols установлен в true, к символьному набору $chars добавляются обязательные символы из $symbols.

    После этого функция создает пароль указанной длины, используя символьный набор, и возвращает его. Затем вы можете вызвать эту функцию с нужными параметрами и вывести сгенерированный пароль.

    Таким образом, вы можете легко добавить обязательные символы к случайному паролю, используя данную функцию. Не забудьте настроить длину пароля и флаг добавления символов в соответствии с вашими требованиями.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно