Maison  >  Article  >  développement back-end  >  Oracle définit des exemples de fonctions de chiffrement DES, de déchiffrement et de chiffrement MD5

Oracle définit des exemples de fonctions de chiffrement DES, de déchiffrement et de chiffrement MD5

高洛峰
高洛峰original
2017-01-24 11:26:552098parcourir

(1) Fonction de cryptage DES

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) Fonction de décryptage DES

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) Fonction de cryptage MD5

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) Exemple d'utilisation de la fonction

Cryptage DES : mise à jour tb_salarysign_staff s set s.staffpwd =encrypt_des(s.staffpwd, 'test#5&124*!de');

Déchiffrement DES : sélectionnez decrypt_des(s.staffpwd, 'test#5&124*!de') depuis tb_salarysign_staff s

Cryptage MD5 : mettre à jour tb_salarysign_staff s set s.staffpwd = md5(s.staffpwd);

Pour plus d'exemples de fonctions de chiffrement DES, de déchiffrement et de chiffrement MD5 définis par Oracle, veuillez prêter attention à le site PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn