Heim  >  Artikel  >  Backend-Entwicklung  >  Oracle definiert Beispiele für DES-Verschlüsselungs-, Entschlüsselungs- und MD5-Verschlüsselungsfunktionen

Oracle definiert Beispiele für DES-Verschlüsselungs-, Entschlüsselungs- und MD5-Verschlüsselungsfunktionen

高洛峰
高洛峰Original
2017-01-24 11:26:552096Durchsuche

(1) DES-Verschlüsselungsfunktion

create or replace function
encrypt_des(p_text varchar2, p_key varchar2) return varchar2 is
v_text varchar2(4000);
v_enc varchar2(4000);
raw_input RAW(128) ;
key_input RAW(128) ;
decrypted_raw RAW(2048);
begin
v_text := rpad( p_text, (trunc(length(p_text)/8)+1)*8, chr(0));
raw_input := UTL_RAW.CAST_TO_RAW(v_text);
key_input := UTL_RAW.CAST_TO_RAW(p_key);
dbms_obfuscation_toolkit.DESEncrypt(input => raw_input,key => key_input,encrypted_data =>decrypted_raw);
v_enc := rawtohex(decrypted_raw);
dbms_output.put_line(v_enc);
return v_enc;
end;

(2) DES-Entschlüsselungsfunktion

create or replace function decrypt_des(p_text varchar2,p_key varchar2) return varchar2 is
v_text varchar2(2000);
begin
dbms_obfuscation_toolkit.DESDECRYPT(input_string => UTL_RAW.CAST_TO_varchar2(p_text),key_string =>p_key, decrypted_string=> v_text);
v_text := rtrim(v_text,chr(0));
dbms_output.put_line(v_text);
return v_text;
end;

(3) MD5-Verschlüsselungsfunktion

CREATE OR REPLACE FUNCTION MD5(passwd IN VARCHAR2)
RETURN VARCHAR2
IS
retval varchar2(32);
BEGIN
retval := utl_raw.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING => passwd)) ;
RETURN retval;
END;

(4) Funktionsverwendungsbeispiel

DES-Verschlüsselung: Update tb_salarysign_staff s set s.staffpwd =encrypt_des(s.staffpwd, 'test#5&124*!de');

DES-Entschlüsselung: select decrypt_des(s.staffpwd, 'test#5&124*!de') from tb_salarysign_staff s

MD5-Verschlüsselung: Update tb_salarysign_staff s set s.staffpwd = md5(s.staffpwd);

Weitere Beispiele für Oracle-definierte DES-Verschlüsselung, Entschlüsselung und MD5-Verschlüsselungsfunktionen finden Sie unter die chinesische PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn