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