欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle 存储过程加密方法

程序员文章站 2023-11-17 11:18:52
软件环境:   1、操作系统:windows 2000 server   2、数 据 库:oracle 8i r2 (8.1.7) for nt 企业版   3、安装路径:...
软件环境:
  1、操作系统:windows 2000 server
  2、数 据 库:oracle 8i r2 (8.1.7) for nt 企业版
  3、安装路径:c:oracle
  实现方法:
  1、
  d:>set nls_lang=american_america.usacii7
  或
  d:>set nls_lang=american_america.we8iso8859p1

  d:>set
  直接打set命令可以查看环境变量
  2、
  在d:下创建a.sql文件,内容如下:
  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,现在它的内容如下:
  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
  sql> @d:a.plb
  过程已创建。
  6、运行存储过程
  sql> set serveroutput on

  sql> execute test1(1);
  输入参数是1
  pl/sql 过程已成功完成。
  7、查看存储过程的代码
  sql> select name,text from all_source where type='procedure' and name='test1';
  结果:看不到其原码