网站建设资讯

NEWS

网站建设资讯

oracle怎么加密函数,oracle加密函数长度调整

oracle 对字段进行 MD5 加密处理函数

工作需要使用sql对某个字段进行加密处理,创建MD5处理函数如下:

创新互联拥有十年成都网站建设工作经验,为各大企业提供网站制作、成都网站设计服务,对于网页设计、PC网站建设(电脑版网站建设)、成都App定制开发、wap网站建设(手机版网站建设)、程序开发、网站优化(SEO优化)、微网站、域名注册等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了很多网站制作、网站设计、网络营销经验,集策划、开发、设计、营销、管理等网站化运作于一体,具备承接各种规模类型的网站建设项目的能力。

使用示例:

但是跑数中途遇到如下报错:

检查发现,当md5函数输入参数为空时,导致报错,修改函数如下,解决:

Oracle如何加密视图源码?

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

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

关于oracle数据库加密的函数

Oracle 提供两种加密方式:

a)加密 API 例如包 和 dbms_crypto 使用这些包,可以构建我们自己的基础架构,对数据进行加密。 这种方法的灵活性最强,但是构建和管理却相当复杂。

b)透明的数据加密是 Oracle 数据库 ;使用该特性后,就不必手动进行密码管理了。

数据库管理密码,但是正如名称所指,加密是透明的——数据仅仅以加密的方式存储而已。在Oracle10g中出现了dbms_crypto替代了之前的dbms_obfuscation_toolkit,DBMS_CRYPTO增加了若干新的加密算法、哈希算法。

DBMS_CRYPTO还撤销了对于public组的执行权限。

如何利用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 dual;

MD5('123456')

e10adc3949ba59abbe56e057f20f883e

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#5124*!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#5124*!de') from tb_salarysign_staff s;

Oracle定义DES加密解密及MD5加密函数示例

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

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

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

(4)函数使用示例

DES加密:

update

tb_salarysign_staff

s

set

s.staffpwd

=encrypt_des(s.staffpwd,

'test#5124*!de');

DES解密:select

decrypt_des(s.staffpwd,

'test#5124*!de')

from

tb_salarysign_staff

s

MD5加密:

update

tb_salarysign_staff

s

set

s.staffpwd

=

md5(s.staffpwd);


本文标题:oracle怎么加密函数,oracle加密函数长度调整
分享地址:http://cdweb.net/article/hdgjdc.html