真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

oracle怎么加密函數(shù),oracle加密函數(shù)長度調(diào)整

oracle 對字段進行 MD5 加密處理函數(shù)

工作需要使用sql對某個字段進行加密處理,創(chuàng)建MD5處理函數(shù)如下:

創(chuàng)新互聯(lián)擁有十年成都網(wǎng)站建設(shè)工作經(jīng)驗,為各大企業(yè)提供網(wǎng)站制作、成都網(wǎng)站設(shè)計服務(wù),對于網(wǎng)頁設(shè)計、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、成都App定制開發(fā)、wap網(wǎng)站建設(shè)(手機版網(wǎng)站建設(shè))、程序開發(fā)、網(wǎng)站優(yōu)化(SEO優(yōu)化)、微網(wǎng)站、域名注冊等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了很多網(wǎng)站制作、網(wǎng)站設(shè)計、網(wǎng)絡(luò)營銷經(jīng)驗,集策劃、開發(fā)、設(shè)計、營銷、管理等網(wǎng)站化運作于一體,具備承接各種規(guī)模類型的網(wǎng)站建設(shè)項目的能力。

使用示例:

但是跑數(shù)中途遇到如下報錯:

檢查發(fā)現(xiàn),當(dāng)md5函數(shù)輸入?yún)?shù)為空時,導(dǎo)致報錯,修改函數(shù)如下,解決:

Oracle如何加密視圖源碼?

最簡單的,把sys收了,異用戶查詢授權(quán)。

要是涉及到代碼移交,那就用函數(shù)實現(xiàn)view,然后用DBMS_DDL.WRAP加密

關(guān)于oracle數(shù)據(jù)庫加密的函數(shù)

Oracle 提供兩種加密方式:

a)加密 API 例如包 和 dbms_crypto 使用這些包,可以構(gòu)建我們自己的基礎(chǔ)架構(gòu),對數(shù)據(jù)進行加密。 這種方法的靈活性最強,但是構(gòu)建和管理卻相當(dāng)復(fù)雜。

b)透明的數(shù)據(jù)加密是 Oracle 數(shù)據(jù)庫 ;使用該特性后,就不必手動進行密碼管理了。

數(shù)據(jù)庫管理密碼,但是正如名稱所指,加密是透明的——數(shù)據(jù)僅僅以加密的方式存儲而已。在Oracle10g中出現(xiàn)了dbms_crypto替代了之前的dbms_obfuscation_toolkit,DBMS_CRYPTO增加了若干新的加密算法、哈希算法。

DBMS_CRYPTO還撤銷了對于public組的執(zhí)行權(quán)限。

如何利用Oracle自帶的MD5對數(shù)據(jù)進行加密

1、DBMS_OBFUSCATION_TOOLKIT.MD5是MD5編碼的數(shù)據(jù)包函數(shù)

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解密函數(shù)

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加密函數(shù)示例

(1)DES加密函數(shù)

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解密函數(shù)

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加密函數(shù)

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)函數(shù)使用示例

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


網(wǎng)頁標題:oracle怎么加密函數(shù),oracle加密函數(shù)長度調(diào)整
網(wǎng)址分享:http://weahome.cn/article/hdgjdc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部