oracle加密工具

來源:互聯網
上載者:User

在Oracle預存程序中所包含的商業秘密,有時不願意被第三方人員看到,可以通過對預存程序加密來實現。

有兩種加密預存程序的方法:這裡重點介紹wrap:

Wrap是Oracle所提供的作業系統級的命令,其加密的原理就是先對源碼進行lz壓縮lzstr,然後對壓縮資料進行SHA-1運算得到40位的加密串shstr,然後將加密串與壓縮串拼接得到shstr+lzstr,然後對拼接後的字串進行Oracle雙字元轉換(轉換表)。最後將轉換後的字串進行base64編碼,最終得到wrap的加密串。Oracle本身沒有提供unwrap工具,wrap文法如下:

wrap iname=input_file [oname=output_file]

參數iname為要加密的檔案名稱,oname為加密後的檔案名稱。如果省略oname,那麼將會自動產生一個同名的加密檔案名稱,且尾碼為plb。

我們來示範一下wrap工具的用法。首先建立一個名稱為test.txt的檔案:

[oracle@pigeon ~]$ which wrap
/u01/product/10.2.0/bin/wrap #wrap所在目錄
[oracle@pigeon ~]$ wrap iname=test.txt

PL/SQL Wrapper: Release 10.2.0.1.0- Production on Mon Jan 17 15:14:11 2011

Copyright (c) 1993, 2004, Oracle.  All rights reserved.

Processing test.txt to test.plb
[oracle@pigeon ~]$ ls
autostartosw.sh  Desktop  l0db.sh  raw.txt  sde2.dmp  sde.dmp  startdb.sh  stop.pigeon  test.plb(新產生一個同名不同尾碼的檔案) test.txt
 

下面分別查看兩個檔案的內容:

[oracle@pigeon ~]$ more test.txt 
create or replace procedure test
is
begin
dbms_output.put_line('welcome to oracle!');
end;
/
[oracle@pigeon ~]$ more test.plb 
create or replace procedure test wrapped 
a000000
354
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
7
49 85
zzrHcdOhOYaYaHu+gE2KKyNe6L4wg5nnm7+fMr2ywFznUrLL7pt0i8DAMv7ShsBSm7JK/iiy
veeysx0GMCyuJOqygZt3bl3kaMMC8c8C5FHbXW7D6TIu9tHqJB/2Oab7j44p

/
[oracle@pigeon ~]$ 

下面使用密文建立與調用建立的procedure

[oracle@pigeon ~]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Mon Jan 17 15:16:06 2011

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

SQL> conn / as sysdba;
Connected.

--複製密文:
SQL> create or replace procedure test wrapped 
  2  a000000
  3  354
  4  abcd
  5  abcd
  6  abcd
  7  abcd
  8  abcd
  9  abcd
 10  abcd
 11  abcd
 12  abcd
 13  abcd
 14  abcd
 15  abcd
 16  abcd
 17  abcd
 18  abcd
 19  7
 20  49 85
 21  zzrHcdOhOYaYaHu+gE2KKyNe6L4wg5nnm7+fMr2ywFznUrLL7pt0i8DAMv7ShsBSm7JK/iiy
 22  veeysx0GMCyuJOqygZt3bl3kaMMC8c8C5FHbXW7D6TIu9tHqJB/2Oab7j44p
 23  
 24  /

Procedure created.

當需要加密的檔案很多時,也可以這樣:

SQL> start /home/oracle/test.plb;

Procedure created.

SQL>

SQL> set serveroutput on;
SQL> exec test;#執行test過程,正確輸出
welcome to oracle!

PL/SQL procedure successfully completed.

SQL>

現在就可以把檔案test.plb發給客戶使用了,而不必擔心你的原始碼的暴露。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.