oracle 存储过程加密的方法
程序员文章站
2023-11-12 16:14:34
配置环境: 1、数 据 库:oracle 8i r2 (8.1.7) for nt 企业版 2、安装路径:c:oracle 实现方法: 1.d:>se...
配置环境:
1、数 据 库:oracle 8i r2 (8.1.7) for nt 企业版
2、安装路径:c:oracle
实现方法:
1.d:>set nls_lang=american_america.usacii7
或
d:>set nls_lang=american_america.we8iso8859p1
d:>set
直接打set命令可以查看环境变量
2.在d:下创建a.sql文件,内容如下:
java代码
create or replace procedure test1(i in number) as
begin
dbms_output.put_line('输入参数是'||to_char(i));
end;
create or replace procedure test1(i in number) as
begin
dbms_output.put_line('输入参数是'||to_char(i));
end;
3.d:>wrap iname=a.sql
pl/sql wrapper: release 8.1.7.0.0 - production on tue nov 27 22:26:48 2001
copyright (c) oracle corporation 1993, 2000. all rights reserved.
processing a.sql to a.plb
4.打开a.plb,现在它的内容如下:
java代码
create or replace procedure test1 wrapped
0
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
3
7
8106000
1
4
0
8
2 :e:
1test1:
1i:
1number:
1dbms_output:
1put_line:
1输入参数是:
1||:
1to_char:
0
0
0
1f
2
0 1d 9a 8f a0 b0 3d b4
55 6a :2 a0 6b 6e 7e :2 a0 a5
b b4 2e a5 57 b7 a4 b1
11 68 4f 17 b5
1f
2
0 3 4 1d 19 18 25 15
2a 2e 32 36 3a 3d 42 45
49 4d 4e 50 51 56 57 5c
5e 62 64 70 74 76 7f
1f
2
0 1 b 11 16 :2 11 10 :3 1
:2 d 16 22 24 2c :2 24 :2 16 :a 1
1f
2
0 :9 1 :d 3 :2 2 :3 1 4 :2 1
81
4
:4 0 1 :a 0 1b
1 :4 0 5 :2 0
:2 3 :3 0 2 :7 0
5 4 :3 0 7
:2 0 1b 2 8
:2 0 4 :3 0 5
:3 0 a b 0
6 :4 0 7 :2 0
8 :3 0 2 :3 0
7 f 11 9
e 13 :3 0 :2 c
15 :2 0 17 10
1a :3 0 1a 0
1a 19 17 18
:6 0 1b :2 0 2
8 1a 1d :2 0
1 1b 1e :8 0
13
4
:3 0 1 3 1
6 1 10 2
d 12 1 14
1 16 2 16
1c
1
4
0
1d
0
1
14
1
2
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0
2 0 1
3 1 0
0
create or replace procedure test1 wrapped
0
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
3
7
8106000
1
4
0
8
2 :e:
1test1:
1i:
1number:
1dbms_output:
1put_line:
1输入参数是:
1||:
1to_char:
0
0
0
1f
2
0 1d 9a 8f a0 b0 3d b4
55 6a :2 a0 6b 6e 7e :2 a0 a5
b b4 2e a5 57 b7 a4 b1
11 68 4f 17 b5
1f
2
0 3 4 1d 19 18 25 15
2a 2e 32 36 3a 3d 42 45
49 4d 4e 50 51 56 57 5c
5e 62 64 70 74 76 7f
1f
2
0 1 b 11 16 :2 11 10 :3 1
:2 d 16 22 24 2c :2 24 :2 16 :a 1
1f
2
0 :9 1 :d 3 :2 2 :3 1 4 :2 1
81
4
:4 0 1 :a 0 1b
1 :4 0 5 :2 0
:2 3 :3 0 2 :7 0
5 4 :3 0 7
:2 0 1b 2 8
:2 0 4 :3 0 5
:3 0 a b 0
6 :4 0 7 :2 0
8 :3 0 2 :3 0
7 f 11 9
e 13 :3 0 :2 c
15 :2 0 17 10
1a :3 0 1a 0
1a 19 17 18
:6 0 1b :2 0 2
8 1a 1d :2 0
1 1b 1e :8 0
13
4
:3 0 1 3 1
6 1 10 2
d 12 1 14
1 16 2 16
1c
1
4
0
1d
0
1
14
1
2
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0
2 0 1
3 1 0
0
5.运行a.plb
java代码
sql> @d:a.plb
sql> @d:a.plb
过程已创建。
6、运行存储过程
java代码
sql> set serveroutput on
sql> execute test1(1);
sql> set serveroutput on
sql> execute test1(1);
输入参数是1
pl/sql 过程已成功完成。
7、查看存储过程的代码
java代码
sql> select name,text from all_source where type='procedure' and name='test1';
sql> select name,text from all_source where type='procedure' and name='test1';
结果:看不到其源码
1、数 据 库:oracle 8i r2 (8.1.7) for nt 企业版
2、安装路径:c:oracle
实现方法:
1.d:>set nls_lang=american_america.usacii7
或
d:>set nls_lang=american_america.we8iso8859p1
d:>set
直接打set命令可以查看环境变量
2.在d:下创建a.sql文件,内容如下:
java代码
create or replace procedure test1(i in number) as
begin
dbms_output.put_line('输入参数是'||to_char(i));
end;
create or replace procedure test1(i in number) as
begin
dbms_output.put_line('输入参数是'||to_char(i));
end;
3.d:>wrap iname=a.sql
pl/sql wrapper: release 8.1.7.0.0 - production on tue nov 27 22:26:48 2001
copyright (c) oracle corporation 1993, 2000. all rights reserved.
processing a.sql to a.plb
4.打开a.plb,现在它的内容如下:
java代码
create or replace procedure test1 wrapped
0
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
3
7
8106000
1
4
0
8
2 :e:
1test1:
1i:
1number:
1dbms_output:
1put_line:
1输入参数是:
1||:
1to_char:
0
0
0
1f
2
0 1d 9a 8f a0 b0 3d b4
55 6a :2 a0 6b 6e 7e :2 a0 a5
b b4 2e a5 57 b7 a4 b1
11 68 4f 17 b5
1f
2
0 3 4 1d 19 18 25 15
2a 2e 32 36 3a 3d 42 45
49 4d 4e 50 51 56 57 5c
5e 62 64 70 74 76 7f
1f
2
0 1 b 11 16 :2 11 10 :3 1
:2 d 16 22 24 2c :2 24 :2 16 :a 1
1f
2
0 :9 1 :d 3 :2 2 :3 1 4 :2 1
81
4
:4 0 1 :a 0 1b
1 :4 0 5 :2 0
:2 3 :3 0 2 :7 0
5 4 :3 0 7
:2 0 1b 2 8
:2 0 4 :3 0 5
:3 0 a b 0
6 :4 0 7 :2 0
8 :3 0 2 :3 0
7 f 11 9
e 13 :3 0 :2 c
15 :2 0 17 10
1a :3 0 1a 0
1a 19 17 18
:6 0 1b :2 0 2
8 1a 1d :2 0
1 1b 1e :8 0
13
4
:3 0 1 3 1
6 1 10 2
d 12 1 14
1 16 2 16
1c
1
4
0
1d
0
1
14
1
2
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0
2 0 1
3 1 0
0
create or replace procedure test1 wrapped
0
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
3
7
8106000
1
4
0
8
2 :e:
1test1:
1i:
1number:
1dbms_output:
1put_line:
1输入参数是:
1||:
1to_char:
0
0
0
1f
2
0 1d 9a 8f a0 b0 3d b4
55 6a :2 a0 6b 6e 7e :2 a0 a5
b b4 2e a5 57 b7 a4 b1
11 68 4f 17 b5
1f
2
0 3 4 1d 19 18 25 15
2a 2e 32 36 3a 3d 42 45
49 4d 4e 50 51 56 57 5c
5e 62 64 70 74 76 7f
1f
2
0 1 b 11 16 :2 11 10 :3 1
:2 d 16 22 24 2c :2 24 :2 16 :a 1
1f
2
0 :9 1 :d 3 :2 2 :3 1 4 :2 1
81
4
:4 0 1 :a 0 1b
1 :4 0 5 :2 0
:2 3 :3 0 2 :7 0
5 4 :3 0 7
:2 0 1b 2 8
:2 0 4 :3 0 5
:3 0 a b 0
6 :4 0 7 :2 0
8 :3 0 2 :3 0
7 f 11 9
e 13 :3 0 :2 c
15 :2 0 17 10
1a :3 0 1a 0
1a 19 17 18
:6 0 1b :2 0 2
8 1a 1d :2 0
1 1b 1e :8 0
13
4
:3 0 1 3 1
6 1 10 2
d 12 1 14
1 16 2 16
1c
1
4
0
1d
0
1
14
1
2
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0
2 0 1
3 1 0
0
5.运行a.plb
java代码
sql> @d:a.plb
sql> @d:a.plb
过程已创建。
6、运行存储过程
java代码
sql> set serveroutput on
sql> execute test1(1);
sql> set serveroutput on
sql> execute test1(1);
输入参数是1
pl/sql 过程已成功完成。
7、查看存储过程的代码
java代码
sql> select name,text from all_source where type='procedure' and name='test1';
sql> select name,text from all_source where type='procedure' and name='test1';
结果:看不到其源码