oracle自带加加解密工具的使用一例
生活随笔
收集整理的這篇文章主要介紹了
oracle自带加加解密工具的使用一例
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
--使用dbms_crypto.Encrypt進行加密 --使用dbms_crypto.Decrypt進行加密 --廢話不多說,見代碼 --------------------------------------------------------------------------- --1、加密方法 --------------------------------------------------------------------------- create or replace function F_GET_Encrypt(I_input_str in varchar2)
? return String is
? --加密函數(shù)
? --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
? --解密函數(shù)
? --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>
? return String is
? --加密函數(shù)
? --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
? --解密函數(shù)
? --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/,如需轉(zhuǎn)載,請注明出處,否則將追究法律責任。
轉(zhuǎn)載于:http://blog.itpub.net/694276/viewspace-717537/
總結(jié)
以上是生活随笔為你收集整理的oracle自带加加解密工具的使用一例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zabbix应用之详细的拓扑图标签--链
- 下一篇: 无法导入android 工程--提示项目