最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Oracle中加密PL/SQL代码

来源:懂视网 责编:小采 时间:2020-11-09 11:18:47
文档

Oracle中加密PL/SQL代码

Oracle中加密PL/SQL代码:加密一个PL/SQL单元就是隐藏PL/SQL代码的过程。可以使用oracle提供的wrap工具和DBMS_DDL进行加密。wrap工具在命令行运行来处理一 下面不才根据Oracle官方文档讲解一下如何加密PL/SQL代码,希望大家共同学习: 主要内容包含以下三块: 一、什么叫加密
推荐度:
导读Oracle中加密PL/SQL代码:加密一个PL/SQL单元就是隐藏PL/SQL代码的过程。可以使用oracle提供的wrap工具和DBMS_DDL进行加密。wrap工具在命令行运行来处理一 下面不才根据Oracle官方文档讲解一下如何加密PL/SQL代码,希望大家共同学习: 主要内容包含以下三块: 一、什么叫加密

加密一个PL/SQL单元就是隐藏PL/SQL代码的过程。可以使用oracle提供的wrap工具和DBMS_DDL进行加密。wrap工具在命令行运行来处理一

下面不才根据Oracle官方文档讲解一下如何加密PL/SQL代码,希望大家共同学习:

主要内容包含以下三块:

  • 一、什么叫加密(二进制文件的混淆技术混淆 Obfuscation)?

    加密一个PL/SQL单元就是隐藏PL/SQL代码的过程。可以使用oracle提供的wrap工具和DBMS_DDL进行加密。

    wrap工具在命令行运行来处理一个输入的SQL 文件,例如SQL*PLUS的安装脚本。DBMS_DDL子程序加密单个动态生成的PL/SQL 单元,例如一个‘CREATE PROCEDURE’声明。

    加密的优点:

    1. 防止其他开发人员滥用你的应用或者商业竞争者偷看你的逻辑。

    2. 加密后即使通过USER_SOURCE、ALL_SOURCE或者DBA_SOURCE数据字典看不见源代码 。

    3. SQL*PLUS可以处理加密后的程序。

    4. 导入导出工具也支持加密代码,你可以备份或者移动已经加密的存储过程。

    对加密的一些提示:

    1. 当加密一个包或者对象类型,只加密包体不加密声明。这就允许开发人员看见将要使用的包或类型的声明,但是看不到实现。

    2. 加密后的源码不可以编辑,如果要修改可以编辑源代码,然后再加密。你也可以推迟加密操作到源代码最终被应用。

    3. 为了确保所有重要的源代码都被加密,最好加密后在编辑器中查看确认。

    加密方法的局限性:

    1. 虽然加密帮助隐藏源程序的逻辑并且使解密变的异常困难,Oracle并不推荐使用该方法加密用户密码和表名。

    加密PL/SQL代码不能绝对阻止一切试图查看源代码的操作。

    2. 加密不支持触发器,为了隐藏一个触发器的工作,我们可以写一个one-line触发器来调用已经加密的存储过程。

    3. 加密的过程并不会去检查PL/SQL代码中的语法或者语义上的错误,例如表或视图不存在。这些错误只有在编译或执行的时候才会检查被发现。

    4. 被加密的PL/SQL程序不能导入到低版本的数据库中,Oracle支持是向上兼容,不支持向下兼容。例如,你能装载在V8.15上加密过的文件到

    V8.16,但是反过来就不行!

    5. 由于源代码是PL/SQL编译器解析,而不是SQL*PLUS,,所以要使用wrap工具加密的PL/SQL代码中不能使用SQL*PLUS符号声明的替代变量。

    6. 绝大多数的注释将在加密的文件中去处。See .

    7.如果调用DBMS_SQL.PARSE方法解析已通过DBMS_DDL.WRAP加密的PL/SQL单元时遇到语句使用了超过32767的VARCHAR2文本类型 ,需要设置LFFLG参数为

    FALSE。否则DBMS_SQL.PARSE往加密的单元中新增行将会破坏程序单元!

    二、使用WRAP工具加密PL/SQL代码:

    wrap工具介绍:

    1.warp只处理PL/SQL块,不会处理匿名块或者触发器或者非PL/SQL块。

    2. 语法如下:

    wrap iname=input_file [oname=output_file] 注:等号左右不能有空格

    input_file 是包含SQL语句的文件名,扩展名不写默认为.sql,也可以使用其他扩展格式:

    例如:

    wrap iname=/mydir/myfile
    wrap iname=/mydir/myfile.sql
    wrap iname=/mydir/myfile.src

    output_file 是加密后生成的文件名,扩展名为.pld。也可以使用其他扩展格式:

    例如:

    wrap iname=/mydir/myfile.sql oname=/mydir/myfile.plb

    wrap iname=/mydir/myfile oname=/yourdir/yourfile.out

    wrap使用案例:

    For example, assume that the wrap_test.sql file contains the following:

  • SQL> conn hr/hr
  • 已连接。
  • SQL> conn hr/hr 已连接。 PL/SQL 过程已成功完成。

    加密过程如下:

    1. 保存wraptest.sql文件到d盘根目录:

    2.命令行中输入以下语句:

    三、使用DBMS_DDL子程序加密PL/SQL代码:

    DBMS_DDL子程序介绍:

    dbms_dll包含WRAP函数和CREATE_WRAPPED存储过程来加密单独的PL/SQL块,如包声明,包体,函数,存储过程,类型声明或者类型体。这些重载的子程序提供加密动态生成的PL/SQL块的机制。

    DBMS_DDL子程序使用案例:

    声明以下语句,并调用DBMS_DDL进行加密:

    查看USER_SOURCE中 emp_actions包的源代码是否加密:

    ...............

    ---------------------------------------------------

    made by dylan.

    linux

    文档

    Oracle中加密PL/SQL代码

    Oracle中加密PL/SQL代码:加密一个PL/SQL单元就是隐藏PL/SQL代码的过程。可以使用oracle提供的wrap工具和DBMS_DDL进行加密。wrap工具在命令行运行来处理一 下面不才根据Oracle官方文档讲解一下如何加密PL/SQL代码,希望大家共同学习: 主要内容包含以下三块: 一、什么叫加密
    推荐度:
    标签: 加密 数据库 oracle
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top