• Oracle的AES加密与解密用法


    Oracle的AES加密与解密用法
    2013年12月11日 11:50:35 iteye_751 阅读数:428
    --加密字符串
    create or replace function des3_enc
    (
    input varchar2
    )
    return varchar2
    is
    i_data varchar2(128);
    v_in varchar2(255);
    i_key varchar2(128);
    raw_input RAW(128) ;
    key_input RAW(128) ;
    decrypted_raw RAW(2048);
    begin
    --判断是否为空
    if input is null then
    return null;
    else if input='' then
    return '';
    end if;
    end if;

    --key,至少要16位
    i_key:= 'abcdef0123456789';

    --要加密信息
    i_data:= input;
    v_in := rpad(i_data,(trunc(length(i_data)/8)+1)*8,chr(0));
    --字符转成RAW
    raw_input := UTL_RAW.CAST_TO_RAW(v_in);
    key_input := UTL_RAW.CAST_TO_RAW(i_key);
    dbms_obfuscation_toolkit.DES3Encrypt(input => raw_input,key => key_input,encrypted_data => decrypted_raw);

    --加密信息转成字符
    return to_char(rawtohex(decrypted_raw));

    end des3_enc;


    --解密字符串
    create or replace function des3_dec
    (
    input varchar2
    )
    return varchar2
    is
    i_data varchar2(2048);
    i_key varchar2(2048);
    v_in varchar2(2048);
    begin
    --判断是否为空
    if input is null then
    return null;
    else if input='' then
    return '';
    end if;
    end if;

    --key,至少要16位
    i_key:= 'abcdef0123456789';

    --要解密的信息
    i_data := input;

    dbms_obfuscation_toolkit.DES3DECRYPT(input_string => UTL_RAW.CAST_TO_varchar2(i_data),key_string => i_key,decrypted_string=> v_in);
    v_in := rtrim(v_in,chr(0));

    --返回解密信息
    return v_in;

    end des3_dec;

    --触发器,用于在增加、修改时自动加密字段,查询时需要手动调用解密函数进行解密。
    create or replace trigger enc_trigger
    before insert or update on scott.dept
    for each row
    begin
    select des3_enc(:new.dname) into :new.dname from dual;
    end enc_trigger;


    --使用示例:
    insert into dept values (50,'test','test');
    commit;
    select des3_dec(dname) from dept where deptno=50;

  • 相关阅读:
    Pyhon数据分析20——matplotlib可视化(二)之柱状图
    程序运行正常,数据库没反应
    Redis在Linux环境下安装的常见错误
    1.1-1.4 sqoop概述及安装cdh版hadoop
    3、css边框以及其他常用样式
    3.15-3.21 hive项目实战
    2、css的存在形式及优先级
    1、css选择器
    3.11-3.14 Hive 企业使用优化2
    3.7-3.10 Hive 企业使用优化1
  • 原文地址:https://www.cnblogs.com/buffercache/p/10209423.html
Copyright © 2020-2023  润新知