快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

oracle如何加密 oracle加密函数怎么使用

如何对Oracle中的PL/SQL源码进行加密

可以使用wrap 工具或者DBMS_DDL子程序对PL/SQL源码进行加密。wrap工具加密单个源文件,如SQL*Plus脚本。DBMS_DDL子程序加密单个动态生成的PL/SQL单元,如一个CREATE PROCEDURE声明。加密的源文件可以移动,备份,可被SQL*Plus和Improt和Export工具处理,但在静态数据字典视图*_SOURCE中无法看到源码。 WRAP语法 wrap iname=input_file [oname=output_file ] 可省略文件扩展名,如以下的命令是等同的: wrap iname=/mydir/myfile wrap iname=/mydir/myfile.sql 输出文件默认的扩展名为.plb,当然你也可以指定不同的文件名和扩展名。 wrap iname=/mydir/myfile oname=/yourdir/yourfile.out wrap主要是混淆PL/SQL语句的主体部分,如下CREATE语句可以被加密: CREATE [OR REPLACE] FUNCTION function_name

创新互联专注于宝安网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供宝安营销型网站建设,宝安网站制作、宝安网页设计、宝安网站官网定制、微信小程序定制开发服务,打造宝安网络公司原创品牌,更为您提供宝安网站排名全网营销落地服务。

CREATE [OR REPLACE] PROCEDURE procedure_name

CREATE [OR REPLACE] PACKAGE package_name

CREATE [OR REPLACE] PACKAGE BODY package_name

CREATE [OR REPLACE] TYPE type_name AS OBJECT

CREATE [OR REPLACE] TYPE type_name UNDER type_name

CREATE [OR REPLACE] TYPE BODY type_name CREATE [OR REPLACE] TRIGGER语句不能被加密,但你可调用加密的过程。加密文件中除了语句头部和C风格(/*…*/)注释外,其它所有注释被删除。

Oracle如何加密视图源码?

最简单的,把sys收了,异用户查询授权。

要是涉及到代码移交,那就用函数实现view,然后用DBMS_DDL.WRAP加密

Oracle--使用Wrap工具加密你的SQL

Oracle提供Wrap工具 可以用于加密你的Package等

不过需要注意的是 加密后的代码无法解密 你需要保管好你的源代码

以下是个例子

源代码

create or replace function get_rowid

(l_rowid in varchar )

return varchar

is

ls_my_rowid     varchar ( )

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( )||

Relative_fno is : ||to_char(relative_fno)||chr( )||

Block number is : ||to_char(block_number)||chr( )||

Row number is   : ||to_char(row_number)

return ls_my_rowid ;

end;

/

代码功能测试

[oracle@jumper tools]$ sqlplus scott/tiger

SQL*Plus: Release Production on Mon Nov : :

Copyright (c) Oracle Corporation   All rights reserved

Connected to:

Oracle i Enterprise Edition Release Production

With the Partitioning option

JServer Release Production

SQL @f_get_rowid

Function created

SQL select rowid from dept where deptno= ;

ROWID

AAABiPAABAAAFRSAAA

SQL select get_rowid( AAABiPAABAAAFRSAAA ) from dual;

GET_ROWID( AAABIPAABAAAFRSAAA )

Object# is      :

Relative_fno is :

Block number is :

Row number is   :

SQL !

[oracle@jumper tools]$ ls

ct sql  ddlt sql  f_get_rowid sql  getevent sql

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

[oracle@jumper tools]$ wrap iname=f_get_rowid sql oname=f_get_rowid plb

PL/SQL Wrapper: Release Production on Mon Nov : :

Copyright (c) Oracle Corporation   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

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

abcd

:e:

FUNCTION:

GET_ROWID:

L_ROWID:

VARCHAR :

RETURN:

LS_MY_ROWID:

:

ROWID_TYPE:

NUMBER:

OBJECT_NUMBER:

RELATIVE_FNO:

BLOCK_NUMBER:

ROW_NUMBER:

DBMS_ROWID:

ROWID_INFO:

Object# is      :::

||:

TO_CHAR:

CHR:

:

Relative_fno is :::

Block number is :::

Row number is   :::

a d f a b d b

: a c a a a a c

b a a c b a

a c b a a c

b a a c b a a

c b : a b : a a

a e e : a a b b e

e a a b b e e

e b e e : a a b b

e e a a b b e

e e b e e : a a b

b e e a a b b

e e e b e e : a a

b b e d : a b a

b f d b

f e b b

c b

c

d c a c

a c b b bc dd

cc d d c e e eb

ef f f fb ff

d d e

d

c a e

b e

e c f

a b a

b d e a a ab ac b

b b bc bd bf c c c

cd d d d db dd e ed

ef f f

a d : :

: e : e : : d :

: : : f : : f : : d

: d b

: e : : c

e : e : :

: : d f : f

: : :

: d f : f :

: : : :

:

: : :

: : : :

: : : a :b c

: d e : d : e

: d : e : d e

f : d : f : d

: f : d f

: d : : d :

: b :

fb

: :

:a e :

:

: :

: :

:

e a

: b

:

: d f

:

c :

f d

: :

c

:

: : c

a c

a : c

:

e : f

c b

: :

:

c c :

e : :

: b

c d

: f : c

d :

: a :

b : c :

d : e

: a

: :

: : a

: c a c

e e :

: :

:

: :

:

: :

: b :

c e b b

: :

: :

e

:

: :

b :

: : c

: e

d :

: :

: b

d

: :

: b d

: :

: d :

f

:

a :

: :

a d :

d c d c

a b : e

: a d

: e

:

:

e

c

d

f

b

d

f

d a f

a

f c

a

c

e

b

a

c

d

/

测试加密后的代码

[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      :

Relative_fno is :

Block number is :

Row number is   :

lishixinzhi/Article/program/Oracle/201311/18606


本文名称:oracle如何加密 oracle加密函数怎么使用
地址分享:http://6mz.cn/article/hpsedj.html

其他资讯