2012-01-11 2 views
8

In Oracle SQL, esiste una funzione MD5 o qualcosa a mia disposizione? Mi piacerebbe fare qualcosa come ...Esiste una funzione di somma MD5 in PL/SQL

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

Vedere anche http://stackoverflow.com/q/1749753/272735 La risposta è praticamente la stessa anche se gli algoritmi di hash sono diversi (MD5 contro SHA1). – user272735

risposta

8

Vedere this Tahiti Link. Sotto Procedure e funzioni MD5 si dice Questi sottoprogrammi generano hash MD5 di dati. L'algoritmo MD5 garantisce l'integrità dei dati generando un valore di digest del messaggio crittografico a 128 bit dai dati forniti.

Si noti inoltre, che DBMS_OBFUSCATION_TOOLKIT è deprecato e può/deve essere sostituito con DBMS_CRYPTO, vedere this Tahiti Link

+0

Grazie per il collegamento ... ora ho bisogno di inserire questo in un DBA per averlo a disposizione. Oh bene ... almeno esiste, solo non funzionalità OOB. Grazie –

-4

non penso che sia fornito subito fuori dalla scatola. è necessario definire il proprio.

+5

non pensare di aver fatto abbastanza ricerche ... –

12

Si consiglia di controllare la procedura DBMS_OBFUSCATION_TOOLKIT.MD5.

Ecco un esempio:

 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' è deprecato almeno da 11g R2. Utilizzare invece 'DBMS_CRYPTO'. (O 'STANDARD_HASH' in 12c.) – user272735

9

In 12c è possibile utilizzare STANDARD_HASH. È disponibile per impostazione predefinita, non richiede alcun oggetto PL/SQL o valori hardcoded e non è deprecato.

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

MD5 
-------------------------------- 
456E4D024B4BB704169E21DEB895B0E2