Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Отличие нового пароля от старого более чем на 3 символа с помощью Regexp / 19 сообщений из 19, страница 1 из 1
05.09.2017, 14:22
    #39515707
aidynchik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие нового пароля от старого более чем на 3 символа с помощью Regexp
Всем доброго дня!
Стоит задача определить отличается ли новый пароль от старого более чем 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
05.09.2017, 14:36
    #39515728
Viewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие нового пароля от старого более чем на 3 символа с помощью Regexp
константа0
0константа

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

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

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

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

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

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

*do
...
Рейтинг: 0 / 0
07.09.2017, 13:18
    #39517317
Good_Knight
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие нового пароля от старого более чем на 3 символа с помощью Regexp
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
07.09.2017, 15:21
    #39517455
Moss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие нового пароля от старого более чем на 3 символа с помощью Regexp
Код: 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
07.09.2017, 15:46
    #39517491
utl_сырой
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие нового пароля от старого более чем на 3 символа с помощью Regexp
Moss,

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

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


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