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);
  • 相关阅读:
    C FILE, rather than fstream
    让word默认使用PMingLiu体
    NxCreatePhysicsSDK 总是失败
    C++猿的Python笔记06类
    VS的C++自定义项目模板初探简之又简
    转一篇比较详细的vc编译qt的文
    绘制透明物体不需要禁用深度测试
    register变量,又,指针,再,malloc/new
    freeglut,rather than glut
    C++猿的Python笔记01
  • 原文地址:https://www.cnblogs.com/xiaoL/p/4019820.html
Copyright © 2011-2022 走看看