雙向加密演算法
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...