powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Отличие нового пароля от старого более чем на 3 символа с помощью Regexp
19 сообщений из 19, страница 1 из 1
Отличие нового пароля от старого более чем на 3 символа с помощью Regexp
    #39515707
aidynchik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго дня!
Стоит задача определить отличается ли новый пароль от старого более чем 3 символа в разных позициях. Вообще реально ли такое малой кровью?
Решил попробовать через Regexp_Replace.
Код: plsql
1.
2.
3.
4.
5.
select regexp_replace('T254est_123', '(T|e|s|t|_|1|3)') from dual

-------
Результат
2542



Но все рушится, если новый пароль содержит в себе цифру 2.
Код: plsql
1.
2.
3.
4.
5.
select regexp_replace('T254est_123', '(T|e|s|t|_|1|2|3)') from dual

-------
Результат
54


То есть последняя двойка тоже ушла...
Дальше у меня воображение не пошло, потому прошу совета
...
Рейтинг: 0 / 0
Отличие нового пароля от старого более чем на 3 символа с помощью Regexp
    #39515728
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
константа0
0константа

все символы в разных позиция разные - и много толку в вашей проверке?
...
Рейтинг: 0 / 0
Отличие нового пароля от старого более чем на 3 символа с помощью Regexp
    #39515742
...
Рейтинг: 0 / 0
Отличие нового пароля от старого более чем на 3 символа с помощью Regexp
    #39515802
aidynchikпрошу советачем жестче требования к паролям, тем легче такие пароли компрометируются хранением в текстовом файле, записыванием на листочке, пересылкой по почте, мессенджерам и т.п.
Кроме того, зная требования на длину, наличие цифр и пунктуации, можно существенно ограничить количество комбинаций для брут-форса.
...
Рейтинг: 0 / 0
Отличие нового пароля от старого более чем на 3 символа с помощью Regexp
    #39515817
Lary Denis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пароль: 6е3пар0лячем жестче требования к паролям, тем легче такие пароли компрометируются хранением в текстовом файле, записыванием на листочке, пересылкой по почте, мессенджерам и т.п.
Кроме того, зная требования на длину, наличие цифр и пунктуации, можно существенно ограничить количество комбинаций для брут-форса.

И тем больше шанс, что юзер сделает пароль 123.
...
Рейтинг: 0 / 0
Отличие нового пароля от старого более чем на 3 символа с помощью Regexp
    #39515910
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aidynchik,

см utl_match, например
utl_match.edit_distance
...
Рейтинг: 0 / 0
Отличие нового пароля от старого более чем на 3 символа с помощью Regexp
    #39515919
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У безопасников свои цели и вехи
...
Рейтинг: 0 / 0
Отличие нового пароля от старого более чем на 3 символа с помощью Regexp
    #39515920
побайтно
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
orawishсм utl_match, например
utl_match.edit_distanceИ сразу начать сочинять подсказку пользователю, чтобы до того дошло, почему не подходит новый пароль. И еще не забыть про особенность работы этого пакета с многобайтовыми символами.
...
Рейтинг: 0 / 0
Отличие нового пароля от старого более чем на 3 символа с помощью Regexp
    #39515923
jaro winkler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
побайтно,

может я чем помочь могу?
...
Рейтинг: 0 / 0
Отличие нового пароля от старого более чем на 3 символа с помощью Regexp
    #39515997
mars478
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
расстояние по левенштайну сравнить между паролями? правда оно измеряется в перестановках, но, чую, это рядом с задачей ТС.
...
Рейтинг: 0 / 0
Отличие нового пароля от старого более чем на 3 символа с помощью Regexp
    #39516113
aidynchik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пароль: 6е3пар0ляaidynchikпрошу советачем жестче требования к паролям, тем легче такие пароли компрометируются хранением в текстовом файле, записыванием на листочке, пересылкой по почте, мессенджерам и т.п.
Кроме того, зная требования на длину, наличие цифр и пунктуации, можно существенно ограничить количество комбинаций для брут-форса.

как тут сказали - у безопасников свои цели :) им главное, чтобы так работало, а дальше хоть трава не расти
...
Рейтинг: 0 / 0
Отличие нового пароля от старого более чем на 3 символа с помощью Regexp
    #39516176
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aidynchik,
если пароль должен отличаться на 3 символа Regexp тут вообще не при чем. select count(1) from (select буквы нового пароля minus select буквы старого пароля) >3. наслаждайся.
тупые правила -> тупые решения
...
Рейтинг: 0 / 0
Отличие нового пароля от старого более чем на 3 символа с помощью Regexp
    #39516193
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы уже выяснили, где и как оракл хранит пароли?
...
Рейтинг: 0 / 0
Отличие нового пароля от старого более чем на 3 символа с помощью Regexp
    #39516242
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmKad,

Судя по реализации, тут скорее
Код: plsql
1.
select does_passwords_differ('Plain text old password', 'Plain text new password') as dummy from dual
...
Рейтинг: 0 / 0
Отличие нового пароля от старого более чем на 3 символа с помощью Regexp
    #39516243
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,

*do
...
Рейтинг: 0 / 0
Отличие нового пароля от старого более чем на 3 символа с помощью Regexp
    #39517317
Good_Knight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aidynchik,


Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
WITH t AS
 (SELECT 'T254est_123' AS old_p
        ,'Test_13' AS new_p
    FROM dual)

SELECT ss
  FROM (SELECT substr(old_p, LEVEL, 3) AS ss
              ,new_p
          FROM (SELECT old_p
                      ,new_p
                  FROM t)
        CONNECT BY LEVEL <= length(old_p) - 2) t2
 WHERE instr(new_p, ss) > 0


...
Рейтинг: 0 / 0
Отличие нового пароля от старого более чем на 3 символа с помощью Regexp
    #39517455
Moss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
DECLARE
 new_password VARCHAR2(20) := '123456ddd';
 old_password VARCHAR2(20) := '123454ddd';
  diff NUMBER:=0;
  l NUMBER;
 BEGIN
       IF length(new_password) < length(old_password) THEN
         l := length(new_password);
       ELSE
         l := length(old_password);
       END IF;
       FOR i IN 1..l LOOP
         IF substr(new_password,i,1) != substr(old_password,i,1) THEN
           diff := diff + 1;
         END IF;
       END LOOP;
       dbms_output.put_line(diff);
        IF diff < 3 THEN
         dbms_output.put_line( 'меньше 3-х одинаковых символа в на одной позиции ');
         ELSE    dbms_output.put_line( 'больше 3-х одинаковых символа в на одной позиции ');
       END IF;    
   END;



но было верно подмечено, что константа0 и 0константа все в разных позициях..
...
Рейтинг: 0 / 0
Отличие нового пароля от старого более чем на 3 символа с помощью Regexp
    #39517491
utl_сырой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Moss,

То, что ты нагромоздил plsqlем, можно выразить вложенными вызовами функций. Хотя есть нюансы с кодировкой.
...
Рейтинг: 0 / 0
Отличие нового пароля от старого более чем на 3 символа с помощью Regexp
    #39517528
Moss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
utl_сырой,

не спорю с вами. я нагромоздил чтоб было явно видно что и как сравниваю...
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Отличие нового пароля от старого более чем на 3 символа с помощью Regexp
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]