zoukankan      html  css  js  c++  java
  • Oracle定义DES加密解密及MD5加密函数

    http://blog.csdn.net/xdweleven/article/details/38319351
     
    (1)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)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)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)函数使用示例
    • DES加密: update tb_salarysign_staff s set s.staffpwd =encrypt_des(s.staffpwd, 'test#5&124*!de');
    • DES解密:select decrypt_des(s.staffpwd, 'test#5&124*!de') from tb_salarysign_staff s 
    • MD5加密: update tb_salarysign_staff s set s.staffpwd = md5(s.staffpwd);
  • 相关阅读:
    实现ls(课上作业)
    20181217 (2)
    20181217 (1)
    ubuntu开启远程ssh登陆本机功能
    解决ubuntu下Could not get lock的问题
    博客园生成目录结构
    np.mean以及np.std用法
    解决 Could not find a version that satisfies the requirement torch==1.4.0
    github下载ocr模型 windows直接解压出问题
    centos7 连接不上网络解决办法
  • 原文地址:https://www.cnblogs.com/xiaoL/p/4019820.html
Copyright © 2011-2022 走看看