Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / MD5 function / 8 сообщений из 8, страница 1 из 1
28.05.2003, 11:46:11
    #32170455
Roman_M
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MD5 function
Как рассчитать внутри PL/SQL & SQL? Т.е. имеется ли такая функция, чтобы сделать SELECT MD5(...) FROM ... WHERE MD5(...)=<...> ???
...
Рейтинг: 0 / 0
28.05.2003, 11:50:03
    #32170459
raven13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MD5 function
прости не понятен вопрос, семантика у тебя верная. Что не работает?
...
Рейтинг: 0 / 0
28.05.2003, 11:57:13
    #32170473
Roman_M
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MD5 function
Разработчики хотят сравнивать длинные строки. Очень длинные. Нужна функция, которая поможет привести их к сравнительно короткому значению. Так вот, где собственно взять такую функцию? :-) МД5 алгоритм - просто для примера взят, он для нашего случая подошел бы.
...
Рейтинг: 0 / 0
28.05.2003, 12:04:34
    #32170488
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MD5 function
Посмотри пакет SYS.DBMS_OBFUSCATION_TOOLKIT
...
Рейтинг: 0 / 0
28.05.2003, 13:34:43
    #32170658
Gluk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MD5 function
Почему MD5 ? Это КРИПТОСТОЙКОЕ преобразование (более ресурсоемкое). Если криптотойкость не требуется, может что-нибудь попроще ?
...
Рейтинг: 0 / 0
28.05.2003, 14:15:38
    #32170725
Roman_M
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MD5 function
> Посмотри пакет SYS.DBMS_OBFUSCATION_TOOLKIT

Точно, есть там функция MD5. Теперь другой вопрос - как ее правильно использовать? Возможно плохо искал (наверняка плохо :), но примеров не нашел. Запрос "в лоб" типа SELECT DBMS_OBFUSCATION_TOOLKIT.MD5('sfwefwe') FROM DUAL не пошел.

ERROR at line 1:
ORA-06553: PLS-307: too many declarations of 'MD5' match this call

Относительно криптостойкости - она на самом деле не нужна. Нужно просто найти в БД аналогичную очень длинную строку, желательно путем сравнения не очень длинных хэш значений или контр. сумм.
...
Рейтинг: 0 / 0
28.05.2003, 14:31:54
    #32170762
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MD5 function
Она перегружена, и варианты использования отличаются только типом и именем переменных. Поэтому в SQL приходится выкручиваться, к примеру, через свою промежуточную функцию:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
create or replace function md5 (p_value varchar2) return varchar2 as
  v_result dbms_obfuscation_toolkit.varchar2_checksum;
begin
  dbms_obfuscation_toolkit.md5 (
      input_string => p_value
    , checksum_string => v_result
  );
  return v_result;
end;
/

select md5('sfwefwe') from dual;


Ну а в PL/SQL можно использовать DBMS_OBFUSCATION_TOOLKIT.MD5 напрямую, просто привязывать параметры по имени, как в верхнем примере.
...
Рейтинг: 0 / 0
28.05.2003, 14:41:09
    #32170793
Roman_M
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MD5 function
Спасибо, так вроде все работает.

В PL/SQL блоке пробовал с явным заданием типов переменных - один черт не вышло. Пробовал с вызовом функции, а не процедуры.
Впрочем, достаточно того что есть рабочий вариант.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / MD5 function / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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