开发者博客:www.developsearch.com
使用Oracle Wrap工具加密你的代码
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>
相关推荐
Oracle存储过程unwrap解密工具主要用于处理Oracle数据库中的加密存储过程。在Oracle数据库系统中,为了保护敏感代码或数据,开发人员有时会选择对存储过程进行加密。然而,当需要查看、调试或恢复这些加密的存储过程...
加密完成后,需要使用SQL\*Plus或其他Oracle客户端工具将加密后的存储过程安装到数据库中。具体步骤如下: 1. 使用SQL\*Plus登录到Oracle数据库。 2. 使用`@`符号加载加密后的存储过程文件,例如`@encrypted_a....
Oracle FYunwrap 是一款专为Oracle数据库设计的对象解密工具,主要功能是针对使用`wrap`命令加密的PL/SQL代码进行解密。在Oracle数据库中,`wrap`命令被用来压缩和加密源代码,以保护敏感的数据库逻辑不被轻易查看或...
Oracle Wrapped 解密工具是一款专为Oracle数据库用户设计的实用程序,旨在帮助他们处理加密的PL/SQL代码。在Oracle数据库中,"wrapped"代码是指经过编译和加密的存储过程、函数或包,通常用于保护敏感的商业逻辑或源...
wrap加密方式是Oracle提供的一种数据保护方法,它使用一个密钥对其他敏感数据进行封装或“打包”。wrap技术可以保护如PL/SQL代码和数据库凭据等数据的完整性。当使用wrap技术时,可以采用一个密钥对数据进行加密,...
本文详细介绍了如何使用Oracle提供的工具对存储过程进行加密,包括设置必要的环境变量、创建存储过程、使用WRAP工具进行加密以及验证加密效果等步骤。通过对存储过程进行加密,不仅可以保护业务逻辑免受未经授权的...
Oracle 提供了两种方法来加密存储过程:使用 `wrap` 工具和 `dbms_ddl` 包。 1. **wrap 工具** `wrap` 是一个操作系统级别的命令,用于加密 PL/SQL 源代码。其基本语法如下: ```bash wrap iname=input_file ...
在命令行中,使用Oracle的WRAP工具对`a.sql`文件进行处理。WRAP工具会将源代码转换为无法直接读取的格式,从而实现基本的加密。执行如下命令: ``` wrap iname=a.sql ``` 4. **查看加密后的文件**: WRAP工具...
生成了加密的PL/SQL块之后,你需要在Oracle数据库中编译这个加密的PL/BI文件。在SQL*Plus中,你可以执行以下命令: ```sql @/tmp/test.plb ``` 这会将加密的PL/SQL块编译成数据库中的存储过程。 最后,为了允许...
为了对存储过程进行加密,可以使用Oracle提供的`wrap`工具。在命令行中执行以下命令: ```bash D:\>wrap iname=a.sql ``` 该命令将读取`a.sql`文件中的内容并生成一个名为`a.plb`的加密文件。`wrap`工具会输出类似...
使用该工具时,你需要将这个文件作为输入,然后它会将wrap加密的内容转换成可读的PL/SQL源代码。 "使用说明.txt" 文件顾名思义,包含了如何使用fyunwrap_full工具的详细步骤和注意事项。通常,这类文件会指导用户...
要使用 wrap 工具,需要首先创建一个 SQL 文件,其中包含要加密的存储过程的源代码。然后,使用 wrap 工具将源代码转换为二进制格式。最后,可以将加密后的存储过程部署到 Oracle 数据库中。 以下是使用 wrap 工具...
Oracle提供`Wrap`命令来加密存储过程、函数、包等。例如: ```bash Wrap iname=script.sql ``` 这将创建一个加密的`.plb`文件,执行此文件可以创建加密的PL/SQL对象。 8. **不存在就插入、存在就更新** ...
- 使用WRAP工具进行加密。 请注意,这些知识点是基于给定文件内容的解析和补充,面试准备时还应关注更多细节和实际操作能力。在面试过程中,除了回答问题,还可能需要解释更深层次的概念、解释特定场景下的最佳...
本文将详细介绍两种主要的加密方法:使用`wrap`命令行工具以及使用Oracle 10g提供的`DBMS_DDL`包。 #### 二、使用`wrap`命令行工具加密存储过程 `wrap`是一个命令行工具,它可以用来加密存储过程的源代码。这适用...
在命令行中,输入`wrap iname=a.sql`,这将使用Oracle的PL/SQL Wrapper工具将源代码转换为加密格式。该工具会将原始的PL/SQL代码压缩并混淆,使其更难被读取和理解。 输出的结果是一个`.plb`文件(如`a.plb`),...
在Windows环境下,通过Oracle的`WRAP`工具,我们可以轻松地对存储过程进行加密,以增强数据库的安全性。这个过程包括创建过程、使用`WRAP`加密、导入加密过程以及验证加密效果。加密后的存储过程仍可正常执行,但其...
Oracle数据库是世界上最广泛使用的数据库系统之一,其安全性与复杂性并存。在Oracle数据库中,开发者有时会将存储...正确理解和使用这些工具,有助于数据库管理员和开发人员更好地管理和维护Oracle环境中的加密对象。
1、1=1,1=2的使用,在SQL语句组合时用的较多 “where 1=1” 是表示选择全部 “where 1=2”全部不选, 如: if @strWhere !='' begin set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' + ...