2012-01-11 14 views
8

W Oracle SQL istnieje funkcja MD5 lub coś dla mnie dostępne? Chciałbym zrobić coś takiego ...Czy istnieje funkcja sumy MD5 w języku PL/SQL

select name, md5_sum(name) from person; 
+0

Zobacz także http://stackoverflow.com/q/1749753/272735 Odpowiedź jest w zasadzie taka sama nawet algorytmy hash są różne (MD5 vs. SHA1). – user272735

Odpowiedz

8

Zobacz this Tahiti Link. Pod MD5 Procedury i funkcje to mówi Podprogramy te generują skróty MD5 danych. Algorytm MD5 zapewnia integralność danych, generując 128-bitową wartość szyfrowania wiadomości kryptograficznej z danych.

Należy również pamiętać, że DBMS_OBFUSCATION_TOOLKIT jest przestarzała i może/powinna zostać zastąpiona DBMS_CRYPTO patrz this Tahiti Link

+0

Dzięki za link ... teraz muszę ustawić to na DBA, aby go udostępnić. No cóż ... przynajmniej istnieje, tylko nie funkcjonalność OOB. Dzięki –

-4

Nie sądzę, że przychodzi z niego zaraz po wyjęciu z pudełka. musisz zdefiniować własne.

+5

nie sądzę, że wykonałeś wystarczającą ilość badań ... –

12

Możesz sprawdzić procedurę DBMS_OBFUSCATION_TOOLKIT.MD5.

Oto przykład:

 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. 
+0

'DBMS_OBFUSCATION_TOOLKIT' jest przestarzałe przynajmniej od 11g R2. Zamiast tego użyj 'DBMS_CRYPTO'. (Lub 'STANDARD_HASH' w 12c.) – user272735

9

w 12C, można użyć STANDARD_HASH. Jest dostępny domyślnie, nie wymaga żadnych obiektów PL/SQL ani zakodowanych wartości i nie jest przestarzały.

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

MD5 
-------------------------------- 
456E4D024B4BB704169E21DEB895B0E2 
Powiązane problemy