當前位置:首頁 » 存儲配置 » oracle存儲過程加密

oracle存儲過程加密

發布時間: 2022-06-08 21:23:03

A. oracle中用存儲過程加密一段字元串有哪些方法

可以例用Oracle 自帶的Wrap工具實現,此工具在$ORACLE_HOME/BIN目錄下,具體如下
1、設置字元集環境變數
set NLS_LANG=CHINESE_CHINA.ZHS16GBK

2、創建一個存儲過程文件
在E:\下創建test.sql文件,內容如下:
create or replace procere test1(i in number) as
begin
dbms_output.put_line(' 輸入參數是'||to_char(i));
end;
3、加密
c:\> cd %ORACLE_HOME%\BIN
c:\>wrap iname=e:\test1.sql
PL/SQL Wrapper: Release 8.1.7.0.0 - Proction on Tue Nov 27 22:26:48 2001
Copyright (c) Oracle Corporation 1993, 2000.All Rights Reserved.
Processing test1.sql to test1.plb

4、運行test1.plb
sqlplus /nolog
SQL>conn TEST/TEST@db01
SQL> @e:\a.plb
過程已創建。

5、運行存儲過程
SQL> set serveroutput on
SQL> execute test1(1);
輸入參數是1
PL/SQL 過程已成功完成。

6、查看存儲過程的代碼
SQL> select name,text from all_source where type='PROCEDURE' and name='TEST1';

B. oracle觸發器實現對表內容的加密

直接調用函數加密就行了。

主要是你拿數據的時候,需要解密比較麻煩。

C. 如何利用Oracle自帶的MD5對數據進行加密

1、DBMS_OBFUSCATION_TOOLKIT.MD5是MD5編碼的數據包函數
CREATE OR REPLACE FUNCTION MD5(passwd IN VARCHAR2)
RETURN VARCHAR2
IS
retval varchar2(32);
BEGIN
retval := utl_raw.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING => passwd)) ;
RETURN retval;
END;
select md5('123456') from al;
MD5('123456')


2、DES加密
create or replace function
encrypt_des(p_text varchar2, p_key varchar2) return varchar2 is
v_text varchar2(4000);
v_enc varchar2(4000);
raw_input RAW(128) ;
key_input RAW(128) ;
decrypted_raw RAW(2048);
begin
v_text := rpad( p_text, (trunc(length(p_text)/8)+1)*8, chr(0));
raw_input := UTL_RAW.CAST_TO_RAW(v_text);
key_input := UTL_RAW.CAST_TO_RAW(p_key);
dbms_obfuscation_toolkit.DESEncrypt(input => raw_input,key => key_input,encrypted_data =>decrypted_raw);
v_enc := rawtohex(decrypted_raw);
dbms_output.put_line(v_enc);
return v_enc;
end;
DES加密:
update tb_salarysign_staff s set s.staffpwd =encrypt_des(s.staffpwd, 'test#5&124*!de');
3、DES解密函數
create or replace function decrypt_des(p_text varchar2,p_key varchar2) return varchar2 is
v_text varchar2(2000);
begin
dbms_obfuscation_toolkit.DESDECRYPT(input_string => UTL_RAW.CAST_TO_varchar2(p_text),key_string =>p_key, decrypted_string=> v_text);
v_text := rtrim(v_text,chr(0));
dbms_output.put_line(v_text);
return v_text;
end;
DES解密:select decrypt_des(s.staffpwd, 'test#5&124*!de') from tb_salarysign_staff s;

D. oracle資料庫透明加密問題

同樣求解

E. 求教,ORACLE加密的存儲過程能否解密

可以例用Oracle
自帶的Wrap工具實現,此工具在$ORACLE_HOME/BIN目錄下,具體如下
1、設置字元集環境變數
set
NLS_LANG=CHINESE_CHINA.ZHS16GBK
2、創建一個存儲過程文件
在E:\下創建test.sql文件,內容如下:
create
or
replace
procere
test1...

F. oracle資料庫的存儲過程如何加密 具體的實現方法是什麼

可以例用Oracle 自帶的Wrap工具實現,此工具在$ORACLE_HOME/BIN目錄下,具體如下
1、設置字元集環境變數
set NLS_LANG=CHINESE_CHINA.ZHS16GBK

2、創建一個存儲過程文件
在E:\下創建test.sql文件,內容如下:
create or replace procere test1(i in number) as
begin
dbms_output.put_line(' 輸入參數是'||to_char(i));
end;
3、加密
c:\> cd %ORACLE_HOME%\BIN
c:\>wrap iname=e:\test1.sql
PL/SQL Wrapper: Release 8.1.7.0.0 - Proction on Tue Nov 27 22:26:48 2001
Copyright (c) Oracle Corporation 1993, 2000.All Rights Reserved.
Processing test1.sql to test1.plb

4、運行test1.plb
sqlplus /nolog
SQL>conn TEST/TEST@db01
SQL> @e:\a.plb
過程已創建。

5、運行存儲過程
SQL> set serveroutput on
SQL> execute test1(1);
輸入參數是1
PL/SQL 過程已成功完成。

6、查看存儲過程的代碼
SQL> select name,text from all_source where type='PROCEDURE' and name='TEST1';

結果:看不到其原碼

熱點內容
md5加密ppt 發布:2024-05-01 21:51:46 瀏覽:352
dnf雲伺服器50g 發布:2024-05-01 21:44:56 瀏覽:448
壓縮性粉碎性骨折 發布:2024-05-01 21:23:46 瀏覽:613
iphone4s怎麼密碼 發布:2024-05-01 21:23:38 瀏覽:307
csgo如何換國服伺服器 發布:2024-05-01 21:03:47 瀏覽:784
qq改寫密碼是多少位數字 發布:2024-05-01 21:02:01 瀏覽:462
你你連接的密碼是多少 發布:2024-05-01 20:59:13 瀏覽:478
安卓應用哪個軟體最多 發布:2024-05-01 20:54:05 瀏覽:22
微信牆完美版php源碼 發布:2024-05-01 20:17:36 瀏覽:485
優酷上傳視頻軟體 發布:2024-05-01 20:17:32 瀏覽:272