加密存储过程是怎样的?
答案:5 悬赏:0
解决时间 2021-10-19 10:14
- 提问者网友:寂寞梧桐
- 2021-10-18 09:15
加密存储过程是怎样的?
最佳答案
- 二级知识专家网友:鱼忧
- 2021-10-18 10:21
在PL/SQL developer中先执行包头、然后再wrap加密包体
1
2
3
4
5
SQL> create or replace package pkg_wrap_test is
2 --测试过程,将输入的数字以字符格式输出
3 procedure test1(i in number);
4 END pkg_wrap_test;
5 /
1
2
3
4
5
SQL> create or replace package pkg_wrap_test is
2 --测试过程,将输入的数字以字符格式输出
3 procedure test1(i in number);
4 END pkg_wrap_test;
5 /
全部回答
- 1楼网友:夜风逐马
- 2021-10-18 14:27
加密存储过程利用了sysobjects 和syscomments 表,并巧妙地修改了原存储过程的SQL 定义语句,S修改为了WITH CRYPTION ,从而达到了加密存储过程的目的。本存储过程在 SQL Server 2000上通过。
- 2楼网友:动情书生
- 2021-10-18 13:51
可以用用MD5的
效果:建一个用户表,有用户的帐号和密码(肯定非空)。要求存储过程在检测到新建用户时进行一个加密,最后表里的密码项显示为一长条字符串,反正不能显示明文啦!
请问这个怎么实现,提供点思路,有源码最好,自己看看
- 3楼网友:野慌
- 2021-10-18 12:21
可以例用Oracle 自带的Wrap工具实现,此工具在$ORACLE_HOME/BIN目录下,具体如下
1、设置字符集环境变量
set NLS_LANG=CHINESE_CHINA.ZHS16GBK
2、创建一个存储过程文件
在E:\下创建test.sql文件,内容如下:
create or replace procedure test1(i in number) as
begin
dbms_output.put_line(' 输入参数是'||to_char(i));
end;
3、加密
c:\> cd %ORACLE_HOME%\BIN
c:\>wrap iname=e:\test1.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 test1.sql to test1.plb
4、运行test1.plb
sqlplus /nolog
SQL>conn TEST/TEST@db01
SQL> @e:\a.plb
过程已创建。
5、运行存储过程
SQL> set serveroutput on
SQL> execute test1(1);
输入参数是1
PL/SQL 过程已成功完成。
6、查看存储过程的代码
SQL> select name,text from all_source where type='PROCEDURE' and name='TEST1';
结果:看不到其原码
- 4楼网友:一袍清酒付
- 2021-10-18 10:46
直接的话可以在SQL Server Profile中追踪查看执行的存储过程,另外有软件,比如SQLDecryptor,也可以做相同的事情,甚至有SQL代码来查看的。希望能帮到你吧!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯