当前位置:首页 » 存储配置 » oracle存储过程加密

oracle存储过程加密

发布时间: 2022-06-08 21:23:03

A. oracle中用存储过程加密一段字符串有哪些方法

可以例用Oracle 自带的Wrap工具实现,此工具在$ORACLE_HOME/BIN目录下,具体如下
1、设置字符集环境变量
set NLS_LANG=CHINESE_CHINA.ZHS16GBK

2、创建一个存储过程文件
在E:\下创建test.sql文件,内容如下:
create or replace procere 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 - Proction 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';

B. oracle触发器实现对表内容的加密

直接调用函数加密就行了。

主要是你拿数据的时候,需要解密比较麻烦。

C. 如何利用Oracle自带的MD5对数据进行加密

1、DBMS_OBFUSCATION_TOOLKIT.MD5是MD5编码的数据包函数
CREATE OR REPLACE FUNCTION MD5(passwd IN VARCHAR2)
RETURN VARCHAR2
IS
retval varchar2(32);
BEGIN
retval := utl_raw.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING => passwd)) ;
RETURN retval;
END;
select md5('123456') from al;
MD5('123456')


2、DES加密
create or replace function
encrypt_des(p_text varchar2, p_key varchar2) return varchar2 is
v_text varchar2(4000);
v_enc varchar2(4000);
raw_input RAW(128) ;
key_input RAW(128) ;
decrypted_raw RAW(2048);
begin
v_text := rpad( p_text, (trunc(length(p_text)/8)+1)*8, chr(0));
raw_input := UTL_RAW.CAST_TO_RAW(v_text);
key_input := UTL_RAW.CAST_TO_RAW(p_key);
dbms_obfuscation_toolkit.DESEncrypt(input => raw_input,key => key_input,encrypted_data =>decrypted_raw);
v_enc := rawtohex(decrypted_raw);
dbms_output.put_line(v_enc);
return v_enc;
end;
DES加密:
update tb_salarysign_staff s set s.staffpwd =encrypt_des(s.staffpwd, 'test#5&124*!de');
3、DES解密函数
create or replace function decrypt_des(p_text varchar2,p_key varchar2) return varchar2 is
v_text varchar2(2000);
begin
dbms_obfuscation_toolkit.DESDECRYPT(input_string => UTL_RAW.CAST_TO_varchar2(p_text),key_string =>p_key, decrypted_string=> v_text);
v_text := rtrim(v_text,chr(0));
dbms_output.put_line(v_text);
return v_text;
end;
DES解密:select decrypt_des(s.staffpwd, 'test#5&124*!de') from tb_salarysign_staff s;

D. oracle数据库透明加密问题

同样求解

E. 求教,ORACLE加密的存储过程能否解密

可以例用Oracle
自带的Wrap工具实现,此工具在$ORACLE_HOME/BIN目录下,具体如下
1、设置字符集环境变量
set
NLS_LANG=CHINESE_CHINA.ZHS16GBK
2、创建一个存储过程文件
在E:\下创建test.sql文件,内容如下:
create
or
replace
procere
test1...

F. oracle数据库的存储过程如何加密 具体的实现方法是什么

可以例用Oracle 自带的Wrap工具实现,此工具在$ORACLE_HOME/BIN目录下,具体如下
1、设置字符集环境变量
set NLS_LANG=CHINESE_CHINA.ZHS16GBK

2、创建一个存储过程文件
在E:\下创建test.sql文件,内容如下:
create or replace procere 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 - Proction 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';

结果:看不到其原码

热点内容
突破服务器ip限制 发布:2025-01-11 17:11:23 浏览:817
支付宝上传凭证 发布:2025-01-11 17:10:29 浏览:875
怎么打开行李箱的密码锁 发布:2025-01-11 17:09:51 浏览:591
苹果怎么删除id账号和密码 发布:2025-01-11 17:09:50 浏览:782
7z解压很慢 发布:2025-01-11 16:51:23 浏览:941
电脑改文档服务器 发布:2025-01-11 16:41:14 浏览:869
编译汇编语言实例 发布:2025-01-11 16:36:55 浏览:670
海康ntp校时服务器地址 发布:2025-01-11 16:34:35 浏览:743
服务器运行超时怎么办 发布:2025-01-11 16:34:32 浏览:299
人妖迅雷种子ftp 发布:2025-01-11 16:33:04 浏览:916