Benutzer-Werkzeuge

Webseiten-Werkzeuge


prog:plsql_md5hash

PL/SQL md5 Hash erzeugen

Aufgabe: für die die Quersumme eines Datensatzes soll ein Hash ermittelt werden.

Mit Hilfe des Hashes kann beim nächsten Lauf ermittelt werden, ob sich Daten einer Zeile verändert haben und weitere Schritte beim Laden der Daten notwendig werden.

Je nach Datenbank Version stehen verschiedene Funktionen dazu zur Verfügung.

Falls der Hash plötzlich nicht gleich ist in zwei Läufen, auf den Zeichensatz der Umgebung achten!

Daher hier mit „convert(v_data,'WE8ISO8859P1')“ alles auf meine Ziel Umgebung explizit gecastet um hier Fehler auszuschließen!


10g - DBMS_OBFUSCATION_TOOLKIT

DECLARE
 v_data varchar2(32001):='x';
 v_hash varchar2(200);
BEGIN
 FOR i IN 1..32000
 loop
     v_data:= v_data || 'x';
 END loop;
 v_hash:=DBMS_OBFUSCATION_TOOLKIT.md5 (INPUT => UTL_RAW.cast_to_raw(CONVERT(v_data,'WE8ISO8859P1')));
 dbms_output.put_line('--Info MD5 hash='||v_hash) ;
END;
/

https://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_obtool.htm#BHBIEGHF


11g - DBMS_CRYPTO

Spätestens ab 11g sollte nicht mehr mit DBMS_OBFUSCATION_TOOLKIT gearbeitet werden, das das nicht mehr weiter von Oracle unterstützt wird!

DECLARE
 v_data varchar2(32001):='x';
 v_hash varchar2(200);
BEGIN
 -- Test Daten 
 FOR i IN 1..32000
 loop
     v_data:= v_data || 'x';
 END loop;
 
 v_hash:=DBMS_CRYPTO.HASH (src => UTL_RAW.cast_to_raw(CONVERT(v_data,'WE8ISO8859P1')), typ => SYS.DBMS_CRYPTO.HASH_MD5);
 
dbms_output.put_line('--Info MD5 hash='||v_hash) ;
END;
/

http://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_crypto.htm


12c - STANDARD_HASH

SELECT STANDARD_HASH('Gunther','MD5') FROM dual;
 
STANDARD_HASH('GUNTHER','MD5')
--------------------------------
D59AF18A3984A94B5B94F7717BB4FAC8

Gültige Algorithmen sind SHA1, SHA256, SHA384, SHA512, und MD5. SHA1 ist der Default!

https://docs.oracle.com/database/121/SQLRF/functions183.htm#SQLRF55647


Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
prog/plsql_md5hash.txt · Zuletzt geändert: 2016/06/14 10:45 von gpipperr