oracle9 1的加密解密包的用法

2021-04-01 01:05:34 字數 4560 閱讀 2837

oracle9.1的加密解密包

雙向加密演算法

dbms_obfuscation_toolkit.desencrypt

dbms_obfuscation_toolkit.desdecrypt

dbms_obfuscation_toolkit.des3encrypt

dbms_obfuscation_toolkit.des3decrypt

單向加密演算法

dbms_obfuscation_toolkit.md5

具體用法參見以下函式

--md5加密

create or replace function

encrypt_md5(p_text varchar2) return varchar2 is

begin

--新增rawtohex(utl_raw.cast_to_raw())為得是加密後的輸出資料規範些

--input_string必須要有,否則沒有辦法區分到底是呼叫那個md5

return rawtohex(utl_raw.cast_to_raw(dbms_obfuscation_toolkit.md5(input_string=>p_text)));

end;

--des加密

create or replace function

encrypt_des(p_text varchar2, p_key varchar2) return varchar2 is

begin

return utl_raw.cast_to_raw(dbms_obfuscation_toolkit.desencrypt(input_string => p_text,

key_string => p_key));

end;

--des解密

create or replace function decrypt_data(p_text varchar2,p_key varchar2) return varchar2 is

v_text varchar2(4000);

begin

dbms_obfuscation_toolkit.desdecrypt(

input_string => utl_raw.cast_to_varchar2(p_text),

key_string => p_key,

decrypted_string=> v_text);

return v_text;

end;

附錄oracle9.2文件自帶的des3加密解密例項:

declare

input_string        varchar2(16) := 'tigertigertigert';

raw_input           raw(128) := utl_raw.cast_to_raw(input_string);

key_string          varchar2(16)  := 'scottscottscotts';

raw_key             raw(128) := utl_raw.cast_to_raw(key_string);

encrypted_raw               raw(2048);

encrypted_string            varchar2(2048);

decrypted_raw               raw(2048);

decrypted_string            varchar2(2048);

error_in_input_buffer_length exception;

pragma exception_init(error_in_input_buffer_length, -28232);

input_buffer_length_err_msg varchar2(100) :=

'*** des input buffer not a multiple of 8 bytes - ignoring exception ***';

double_encrypt_not_permitted exception;

pragma exception_init(double_encrypt_not_permitted, -28233);

double_encryption_err_msg varchar2(100) :=

'*** cannot double encrypt data - ignoring exception ***';

-- 1. begin testing raw data encryption and decryption

begin

dbms_output.put_line('> *****==== begin test raw data *****====');

dbms_output.put_line('> raw input                        : ' ||

utl_raw.cast_to_varchar2(raw_input));

begin

dbms_obfuscation_toolkit.des3encrypt(input => raw_input,

key => raw_key, encrypted_data => encrypted_raw );

dbms_output.put_line('> encrypted hex value              : ' ||

rawtohex(encrypted_raw));

dbms_obfuscation_toolkit.des3decrypt(input => encrypted_raw,

key => raw_key, decrypted_data => decrypted_raw);

dbms_output.put_line('> decrypted raw output             : ' ||

utl_raw.cast_to_varchar2(decrypted_raw));

dbms_output.put_line('>  ');     

if utl_raw.cast_to_varchar2(raw_input) =

utl_raw.cast_to_varchar2(decrypted_raw) then

dbms_output.put_line('> raw des3 encyption and decryption successful');

end if;

exception

when error_in_input_buffer_length then

dbms_output.put_line('> ' || input_buffer_length_err_msg);

end;

dbms_output.put_line('>  ');

end;

-- 2. begin testing string data encryption and decryption

dbms_output.put_line('> *****==== begin test string data *****====');

begin

dbms_output.put_line('> input string                     : '

|| input_string);

dbms_obfuscation_toolkit.des3encrypt(

input_string => input_string,

key_string => key_string,

encrypted_string => encrypted_string );

dbms_output.put_line('> encrypted hex value              : ' ||

rawtohex(utl_raw.cast_to_raw(encrypted_string)));

dbms_obfuscation_toolkit.des3decrypt(

input_string => encrypted_string,

key_string => key_string,

decrypted_string => decrypted_string );

dbms_output.put_line('> decrypted string output          : ' ||

decrypted_string);

if input_string = decrypted_string then

dbms_output.put_line('> string des3 encyption and decryption

successful');

end if;

exception

when error_in_input_buffer_length then

dbms_output.put_line(' ' || input_buffer_length_err_msg);

end;

dbms_output.put_line('>  ');

end;

Oracle系列 Oracle入門

一,什麼是oracle?1,oracle是一個 物件關係 資料庫管理系統 ordbms 2,基於客戶 伺服器 c s 系統結構,是使用者與資料庫之間的介面。客戶端執行與使用者的互動,伺服器端執行資料庫操作。二,oracle的特點?1,企業級應用的大型資料庫 2,安全,完整性強 3,分散式處理 4,可...

oracle 徹底刪除oracle

例如oracle安裝路徑為 c oracle 實現方法 1 開始 設定 控制面板 管理工具 服務 停止所有oracle服務。2 開始 程式 oracle orahome81 oracle installation products universal installer 卸裝所有oracle產品,但...

Oracle命令(三) Oracle使用者

1 顯示當前使用者名稱 select user from dual show user 2 顯示當然使用者有哪些表 select from tab 3 顯示當所有使用者的表 select from user tables 4 顯示當有使用者可以訪問表 select from all tables 5...

Oracle命令(一) Oracle登入

1 執行sqlplus工具 c users wd pc sqlplus 2 直接進入sqlplus命令提示符 c users wd pc sqlplus nolog 3 以os身份連線 c users wd pc sqlplus as sysdba 或 c users wd pc sqlplus s...

Oracle學習(一) 安裝Oracle

開啟oracle資料夾,找到setup.exe安裝檔案開始安裝 配置安全更新 系統開始先決條件檢查 出現安裝概要 開始安裝,自動進行配置,等待安裝完成 自動開始建立資料庫 如果剛才沒有選擇建立資料庫,就不會建立 生成當前操作的日誌檔案 單擊口令管理 選擇要使用的使用者取消鎖定賬戶 完成。嘗試登陸連線...