oracle9的加密解密包

2021-09-01 08:02:24 字數 4379 閱讀 1835

雙向加密演算法

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;

不錯的冬冬.共享一下!

**:

ORACLE9解除安裝

oracle資料庫安裝起來比較麻煩,解除安裝也不像微軟的產品那樣容易。對於oracle9的解除安裝,控制面板裡是沒有解除安裝程式的。可以從開始選單 程式 oracle installation products universal installer 進入安裝的介面,介面上有乙個解除安裝安裝產品,進...

解除安裝oracle9

1,停止oracle所有服務。2,執行oracle universal installer解除安裝oracle 3,個性登錄檔,刪除oracle的相關資訊 oracle軟體相關鍵值 hkey local machine software oracle oracle服務 hkey local mach...

在windows xp上刪除oracle9i方法

在windows xp上刪除oracle9i方法 1 開始 設定 控制面板 管理工具 服務 停止所有oracle服務。2 開始 程式 oracle orahome81 oracle installation products universal installer 卸裝所有oracle產品,但uni...