ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle自带加加解密工具的使用一例

oracle自带加加解密工具的使用一例

原创 Linux操作系统 作者:myfriend2010 时间:2019-05-01 11:21:05 0 删除 编辑
--使用dbms_crypto.Encrypt进行加密
--使用dbms_crypto.Decrypt进行加密
--废话不多说,见代码
 
---------------------------------------------------------------------------
--1、加密方法
---------------------------------------------------------------------------
create or replace function F_GET_Encrypt(I_input_str in varchar2)
  return String is
  --加密函数
  --key 可以自定义修改但,注意长度
  V_STR_KEY     varchar2(32) := '====zhaoxta@dcits.com====';
  V_raw_key     raw(128) := UTL_I18N.STRING_TO_RAW(V_STR_KEY);
  V_raw_Encrypt raw(128);
  --加密算法 可以修改为DBMS_CRYPTO.DES_CBC_PKCS5\DBMS_CRYPTO.DES3_CBC_PKCS5\DBMS_CRYPTO.AES_CBC_PKCS5等
  --甚至可以自定义如DBMS_CRYPTO.ENCRYPT_DES+ DBMS_CRYPTO.CHAIN_CBC+ DBMS_CRYPTO.PAD_PKCS5;
  V_TYPE        PLS_INTEGER := DBMS_CRYPTO.DES3_CBC_PKCS5;
begin
  V_raw_Encrypt := dbms_crypto.Encrypt(src => utl_i18n.string_to_raw(I_input_str),
                                       typ => V_TYPE,
                                       key => V_raw_key);
  return V_raw_Encrypt;
end;
 
---------------------------------------------------------------------------
--2、解密方法
---------------------------------------------------------------------------
 
create or replace function F_GET_DEEncrypt(I_input_str in raw)
  return String is
  --解密函数
  --key 可以自定义修改但,注意长度
  V_STR_KEY       varchar2(32) := '====zhaoxta@dcits.com====';
  V_raw_key       raw(128) := utl_raw.cast_to_raw(V_STR_KEY);
  V_raw_DdEncrypt raw(128);
  --解密算法 可以修改为DBMS_CRYPTO.DES_CBC_PKCS5\DBMS_CRYPTO.DES3_CBC_PKCS5\DBMS_CRYPTO.AES_CBC_PKCS5等
  --甚至可以自定义如DBMS_CRYPTO.ENCRYPT_DES+ DBMS_CRYPTO.CHAIN_CBC+ DBMS_CRYPTO.PAD_PKCS5;
  V_TYPE          PLS_INTEGER := DBMS_CRYPTO.DES3_CBC_PKCS5;
begin
  V_raw_DdEncrypt := dbms_crypto.Decrypt(src => I_input_str,
                                         typ => V_TYPE,
                                         key => V_raw_key);
  return utl_i18n.raw_to_char(V_raw_DdEncrypt);
end;
---------------------------------------------------------------------------
--3、使用举例
---------------------------------------------------------------------------
 
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as zxt
 
SQL> select f_get_encrypt('abcd') from dual;
 
F_GET_ENCRYPT('ABCD')
--------------------------------------------------------------------------------
B824B98ADF239357
 
SQL> select f_get_deencrypt('B824B98ADF239357') from dual;
 
F_GET_DEENCRYPT('B824B98ADF239
--------------------------------------------------------------------------------
abcd
 
SQL>

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/694276/viewspace-717537/,如需转载,请注明出处,否则将追究法律责任。

上一篇: DML_monitor
请登录后发表评论 登录
全部评论

注册时间:2018-09-01

  • 博文量
    187
  • 访问量
    126703