Есть ли в PL / SQL функция суммы MD5 - PullRequest
8 голосов
/ 12 января 2012

В Oracle SQL есть функция MD5 или что-то для меня? Я хотел бы сделать что-то вроде ...

select name, md5_sum( name ) from person;

Ответы [ 4 ]

12 голосов
/ 12 января 2012

Возможно, вы захотите проверить процедуру DBMS_OBFUSCATION_TOOLKIT.MD5 .

Вот пример:

     SQL> column md5_val FORMAT A40
     SQL> SELECT DBMS_OBFUSCATION_TOOLKIT.md5 (input => UTL_RAW.cast_to_raw('Eddie')) md5_val
       2    FROM DUAL;
     MD5_VAL
     ----------------------------------------
     E5F6C83E6E97C74FC9E9760FC8972AED

     1 row selected.
9 голосов
/ 13 августа 2013

В 12c вы можете использовать STANDARD_HASH . Он доступен по умолчанию, не требует каких-либо объектов PL / SQL или жестко заданных значений и не считается устаревшим.

SQL> select standard_hash('Finally, an easy way to do this.', 'MD5') md5
  2  from dual;

MD5
--------------------------------
456E4D024B4BB704169E21DEB895B0E2
8 голосов
/ 12 января 2012

См. эту ссылку на Таити .В разделе Процедуры и функции MD5 указано Эти подпрограммы генерируют хеши данных MD5.Алгоритм MD5 обеспечивает целостность данных, генерируя 128-битное криптографическое значение дайджеста сообщения из заданных данных.

Также обратите внимание, что DBMS_OBFUSCATION_TOOLKIT устарело и может / должно быть заменено на DBMS_CRYPTO, см. это Таити Ссылка

0 голосов
/ 12 января 2012

не думайте, что это идет с этим прямо из коробки.вам нужно определить свой собственный.

...