使用Oracle Wrap工具加密你的代码

使用Oracle Wrap工具加密你的代码

Last Updated: Monday, 2004-11-15 22:31 Eygle


|

Oracle提供Wrap工具,可以用于加密你的Package等.
不过需要注意的是,加密后的代码无法解密,你需要保管好你的源代码。

以下是个例子:

1.源代码

|

> > create or replace function get_rowid > (l_rowid in varchar2) > return varchar2 > is > ls_my_rowid varchar2(200);
> rowid_type number;
> object_number number;
> relative_fno number;
> block_number number;
> row_number number;
> begin > dbms_rowid.rowid_info(l_rowid,rowid_type,object_number,relative_fno, block_number, row_number);
> ls_my_rowid := 'Object# is :'||to_char(object_number)||chr(10)|| > 'Relative_fno is :'||to_char(relative_fno)||chr(10)|| > 'Block number is :'||to_char(block_number)||chr(10)|| > 'Row number is :'||to_char(row_number); > return ls_my_rowid ; > end;
> /
>
>


2.代码功能测试

> > [oracle@jumper tools]$ sqlplus scott/tiger >
> SQL*Plus: Release 9.2.0.4.0 - Production on Mon Nov 15 21:56:36 2004 >
> Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. >
>
> Connected to: > Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production > With the Partitioning option > JServer Release 9.2.0.4.0 - Production >
> SQL> @f_get_rowid >
> Function created. >
> SQL> select rowid from dept where deptno=10; >
> ROWID > ------------------ > AAABiPAABAAAFRSAAA >
> SQL> select get_rowid('AAABiPAABAAAFRSAAA') from dual;
>
> GET_ROWID('AAABIPAABAAAFRSAAA') > ------------------------------------------------------------------ > Object# is :6287 > Relative_fno is :1 > Block number is :21586 > Row number is :0 >
>
> SQL> ! > [oracle@jumper tools]$ ls > ct.sql ddlt.sql f_get_rowid.sql getevent.sql


3.使用wrap加密及加密后的代码

> > [oracle@jumper tools]$ wrap iname=f_get_rowid.sql oname=f_get_rowid.plb >
> PL/SQL Wrapper: Release 9.2.0.4.0- Production on Mon Nov 15 21:59:39 2004 >
> Copyright (c) Oracle Corporation 1993, 2001. All Rights Reserved. >
> Processing f_get_rowid.sql to f_get_rowid.plb >
> [oracle@jumper tools]$ cat f_get_rowid.plb > create or replace function get_rowid wrapped > 0 > abcd > abcd > abcd > abcd > abcd > abcd > abcd > abcd > abcd > abcd > abcd > abcd > abcd > abcd > abcd > 3 > 8 > 9200000 > 1 > 4 > 0 > 17 > 2 :e: > 1FUNCTION: > 1GET_ROWID: > 1L_ROWID: > 1VARCHAR2: > 1RETURN: > 1LS_MY_ROWID: > 1200: > 1ROWID_TYPE: > 1NUMBER: > 1OBJECT_NUMBER: > 1RELATIVE_FNO: > 1BLOCK_NUMBER: > 1ROW_NUMBER: > 1DBMS_ROWID: > 1ROWID_INFO: > 1Object# is ::: > 1||: > 1TO_CHAR: > 1CHR: > 110: > 1Relative_fno is ::: > 1Block number is ::: > 1Row number is ::: > 0 >
> 0 > 0 > 83 > 2 > 0 a0 8d 8f a0 b0 3d b4 > :2 a0 2c 6a a3 a0 51 a5 1c > 81 b0 a3 a0 1c 81 b0 a3 > a0 1c 81 b0 a3 a0 1c 81 > b0 a3 a0 1c 81 b0 a3 a0 > 1c 81 b0 :2 a0 6b :6 a0 a5 57 > a0 6e 7e :2 a0 a5 b b4 2e > 7e a0 51 a5 b b4 2e 7e > 6e b4 2e 7e :2 a0 a5 b b4 > 2e 7e a0 51 a5 b b4 2e > 7e 6e b4 2e 7e :2 a0 a5 b > b4 2e 7e a0 51 a5 b b4 > 2e 7e 6e b4 2e 7e :2 a0 a5 > b b4 2e d :2 a0 65 b7 a4 > b1 11 68 4f 1d 17 b5 > 83 > 2 > 0 3 7 23 1f 1e 2b 1b > 30 34 38 3c 59 44 48 4b > 4c 54 43 75 64 68 70 40 > 8d 7c 80 88 63 a9 98 9c > a4 60 c1 b0 b4 bc 97 dd > cc d0 d8 94 c8 e4 e8 eb > ef f3 f7 fb ff 103 104 109 > 10d 112 115 119 11d 11e 120 121 > 126 129 12d 130 131 133 134 139 > 13c 141 142 147 14a 14e 152 153 > 155 156 15b 15e 162 165 166 168 > 169 16e 171 176 177 17c 17f 183 > 187 188 18a 18b 190 193 197 19a > 19b 19d 19e 1a3 1a6 1ab 1ac 1b1 > 1b4 1b8 1bc 1bd 1bf 1c0 1c5 1c9 > 1cd 1d1 1d5 1d7 1db 1dd 1e9 1ed > 1ef 1f0 1f9 > 83 > 2 > 0 1 a 2 d :2 2 :2 1 8 > :3 1 e 17 16 :2 e :2 1 :3 d :2 1 > :3 10 :2 1 :3 f :2 1 :3 f :2 1 :3 d 1 > 2 :2 d 18 20 2b 39 47 55 > :3 2 11 24 26 2e :2 26 :2 11 3c > 3e 42 :2 3e :2 11 45 3 :2 11 16 > 18 20 :2 18 :2 11 2d 2f 33 :2 2f > :2 11 36 3 :2 11 16 18 20 :2 18 > :2 11 2d 2f 33 :2 2f :2 11 36 3 > :2 11 16 18 20 :2 18 :2 11 :2 2 9 > 2 :9 1 > 83 > 4 > 0 :2 1 :5 2 :2 3 > :2 1 :7 5 :5 6 :5 7 > :5 8 :5 9 :5 a :b c > :11 d e :2 d :5 e > :2 d :5 e :2 d e > f :2 d :5 f :2 d > :5 f :2 d f 10 > :2 d :5 10 :3 d :3 11 > :2 b :7 1 > 1fb > 4 > :3 0 1 :3 0 2 > :a 0 7e 1 :7 0 > 5 :2 0 3 4 > :3 0 3 :7 0 5 > 4 :3 0 5 :3 0 > 4 :3 0 7 9 > 0 7e 2 a > :2 0 b 60 0 > 9 4 :3 0 7 > :2 0 7 d f > :6 0 12 10 0 > 7c 0 6 :6 0 > f 94 0 d > 9 :3 0 14 :7 0 > 17 15 0 7c > 0 8 :6 0 9 > :3 0 19 :7 0 1c > 1a 0 7c 0 > a :6 0 13 c8 > 0 11 9 :3 0 > 1e :7 0 21 1f > 0 7c 0 b > :6 0 9 :3 0 23 > :7 0 26 24 0 > 7c 0 c :6 0 > e :3 0 9 :3 0 > 28 :7 0 2b 29 > 0 7c 0 d > :6 0 f :3 0 2c > 2d 0 3 :3 0 > 8 :3 0 a :3 0 > b :3 0 c :3 0 > d :3 0 15 2e > 35 :2 0 7a 6 > :3 0 10 :4 0 11 > :2 0 12 :3 0 a > :3 0 1c 3a 3c > 1e 39 3e :3 0 > 11 :2 0 13 :3 0 > 14 :2 0 21 41 > 43 23 40 45 > :3 0 11 :2 0 15 > :4 0 26 47 49 > :3 0 11 :2 0 12 > :3 0 b :3 0 29 > 4c 4e 2b 4b > 50 :3 0 11 :2 0 > 13 :3 0 14 :2 0 > 2e 53 55 30 > 52 57 :3 0 11 > :2 0 16 :4 0 33 > 59 5b :3 0 11 > :2 0 12 :3 0 c > :3 0 36 5e 60 > 38 5d 62 :3 0 > 11 :2 0 13 :3 0 > 14 :2 0 3b 65 > 67 3d 64 69 > :3 0 11 :2 0 17 > :4 0 40 6b 6d > :3 0 11 :2 0 12 > :3 0 d :3 0 43 > 70 72 45 6f > 74 :3 0 37 75 > 0 7a 5 :3 0 > 6 :3 0 78 :2 0 > 7a 48 7d :3 0 > 7d 4c 7d 7c > 7a 7b :6 0 7e > :2 0 2 a 7d > 81 :3 0 80 7e > 82 :8 0 > 53 > 4 > :3 0 1 3 1 > 6 1 e 1 > c 1 13 1 > 18 1 1d 1 > 22 1 27 6 > 2f 30 31 32 > 33 34 1 3b > 2 38 3d 1 > 42 2 3f 44 > 2 46 48 1 > 4d 2 4a 4f > 1 54 2 51 > 56 2 58 5a > 1 5f 2 5c > 61 1 66 2 > 63 68 2 6a > 6c 1 71 2 > 6e 73 3 36 > 76 79 6 11 > 16 1b 20 25 > 2a > 1 > 4 > 0 > 81 > 0 > 1 > 14 > 1 > 8 > 0 0 0 0 0 0 0 0 > 0 0 0 0 0 0 0 0 > 0 0 0 0 > 3 1 0 > 22 1 0 > 2 0 1 > c 1 0 > 13 1 0 > 27 1 0 > 18 1 0 > 1d 1 0 > 0 >
> /


4.测试加密后的代码

> > [oracle@jumper tools]$ exit > exit >
> SQL> drop function get_rowid; >
> Function dropped. >
> SQL> @f_get_rowid.plb >
> Function created. >
> SQL> select get_rowid('AAABiPAABAAAFRSAAA') from dual; >
> GET_ROWID('AAABIPAABAAAFRSAAA') > ----------------------------------------------------------------- > Object# is :6287 > Relative_fno is :1 > Block number is :21586 > Row number is :0 >
>
> SQL> >


本文作者:
eygle,Oracle技术关注者,来自中国最大的Oracle技术论坛 itpub .
www.eygle.com 是作者的个人站点.你可通过 [email protected] 来联系作者.欢迎技术探讨交流以及链接交换.


原文出处:

http://www.eygle.com/faq/Use.Wrap.to.Encryption.You.Code.htm


Published At
Categories with 数据库类
Tagged with
comments powered by Disqus