DECODE函數(shù)的作用 它可以將輸入數(shù)值與函數(shù)中的參數(shù)列表相比較 根據(jù)輸入值返回一個(gè)對(duì)應(yīng)值 函數(shù)的參數(shù)列表是由若干數(shù)值及其對(duì)應(yīng)結(jié)果值組成的若干序偶形式 當(dāng)然 如果未能與任何一個(gè)實(shí)參序偶匹配成功 則函數(shù)也有默認(rèn)的返回值

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),惠陽企業(yè)網(wǎng)站建設(shè),惠陽品牌網(wǎng)站建設(shè),網(wǎng)站定制,惠陽網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,惠陽網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
DECODE函數(shù)的作用 它可以將輸入數(shù)值與函數(shù)中的參數(shù)列表相比較 根據(jù)輸入值返回一個(gè)對(duì)應(yīng)值 函數(shù)的參數(shù)列表是由若干數(shù)值及其對(duì)應(yīng)結(jié)果值組成的若干序偶形式 當(dāng)然 如果未能與任何一個(gè)實(shí)參序偶匹配成功 則函數(shù)也有默認(rèn)的返回值
區(qū)別于SQL的其它函數(shù) DECODE函數(shù)還能識(shí)別和操作空值
語法如下
DECODE(control_value value result [ value result …][ default_result]);
control _value
試圖處理的數(shù)值 DECODE函數(shù)將該數(shù)值與后面的一系列的偶序相比較 以決定返回值
value
是一組成序偶的數(shù)值 如果輸入數(shù)值與之匹配成功 則相應(yīng)的結(jié)果將被返回 對(duì)應(yīng)一個(gè)空的返回值 可以使用關(guān)鍵字NULL于之對(duì)應(yīng)
result
是一組成序偶的結(jié)果值
default_result 未能與任何一個(gè)值匹配時(shí) 函數(shù)返回的默認(rèn)值
示例如下
select decode( x ‘x is ’ ‘x is ’ ‘others’) from dual
當(dāng)x等于 時(shí) 則返回‘x is ’
當(dāng)x等于 時(shí) 則返回‘x is ’
否則 返回others’
在需要比較 個(gè)值的時(shí)候 我們可以配合SIGN()函數(shù)一起使用
SELECT DECODE( SIGN( ) Is Positive Is Nagative Is Zero )
同樣 也可以用CASE實(shí)現(xiàn)
SELECT CASE SIGN( )
WHEN THEN Is Positive
WHEN THEN Is Nagative
ELSE Is Zero END
FROM DUAL
另外 大家還可以在Order by中使用Decode
例 表table_subject 有subject_name列 要求按照 語 數(shù) 外的順序進(jìn)行排序 這時(shí) 就可以非常輕松的使用Decode完成要求了
lishixinzhi/Article/program/Oracle/201311/19054
如何解密Oracle Warp加密過程
Oracle加密的原理就是先對(duì)源碼進(jìn)行l(wèi)z壓縮lzstr,然后對(duì)壓縮數(shù)據(jù)進(jìn)行SHA-1運(yùn)算得到40位的加密串shstr,然后將加密串與壓縮串拼接得到shstr+lzstr,然后對(duì)拼接后的字符串進(jìn)行Oracle雙字符轉(zhuǎn)換(轉(zhuǎn)換表)。最后將轉(zhuǎn)換后的字符串進(jìn)行base64編碼,最終得到wrap的加密串。
可以例用Oracle
自帶的Wrap工具實(shí)現(xiàn),此工具在$ORACLE_HOME/BIN目錄下,具體如下
1、設(shè)置字符集環(huán)境變量
set
NLS_LANG=CHINESE_CHINA.ZHS16GBK
2、創(chuàng)建一個(gè)存儲(chǔ)過程文件
在E:\下創(chuàng)建test.sql文件,內(nèi)容如下:
create
or
replace
procedure
test1...
MD5解密方法
我在存儲(chǔ)數(shù)據(jù)庫的時(shí)候,通過md5加密方法將字段進(jìn)行加密,當(dāng)我在讀取該字段時(shí)如何正確的讀取原來的值啊
------解決方案--------------------
沒辦法,MD5是不可逆的。
你需要使用可逆加密算法。
------解決方案--------------------
插入表中的時(shí)候md5加密
比如:
$sql= "insert into register(names,pswd,repswd) values( '$_POST[names] ',md5( '$_POST[pswd] '),md5( '$_POST[repswd] ')) ";
$qid=mysql_query($sql);
讀取的時(shí)候
$pswd=empty($_POST[ 'pswd '])? ' ':md5($_POST[ 'pswd ']);
------解決方案--------------------
如果業(yè)務(wù)要求可還原,那么不要采用MD5,請(qǐng)使用可逆加密算法,如DES加密。
MD5為不可逆散列算法,可用于存儲(chǔ)用戶密碼,存儲(chǔ)后不需要永遠(yuǎn)不需要知道明文。密碼比較時(shí)只需將用戶輸入的密碼再次轉(zhuǎn)成MD5碼與存儲(chǔ)的相比較即可得知用戶輸入密碼是否正確。
linux/unix操作系統(tǒng)一般采用MD5進(jìn)行用戶密碼加密。
------解決方案--------------------
MD5目前所謂的破解只是采用碰撞法找到了對(duì)等因子。
比如:string1的MD5碼為MD1,而現(xiàn)在我們做到的只是又找到了一個(gè)string2,它的MD5碼也是MD1。
結(jié)果就是:用戶登陸某采用MD5加密的系統(tǒng)時(shí),本來密碼是12345,現(xiàn)在可能用abcde也能登陸。
想想可能還原嗎?如果可以還原,那天大的信息也能用32位長(zhǎng)的字符串表示了,這不成了超級(jí)壓縮算法了嗎,整個(gè)宇宙的信息都可以用32位長(zhǎng)表示了。不可逆的!
(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);
通過配置本地?cái)?shù)據(jù)庫的tns配置文件實(shí)現(xiàn):
去oracle安裝目錄下oracle\product\10.2.0\db_2\NETWORK\ADMIN\ 找到tnsnames.ora,用記事本打開,里邊有遠(yuǎn)程數(shù)據(jù)庫的tns連接配置串如下
ORCL23 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.23)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ORCL)
)
)
添加好ip、端口和目標(biāo)數(shù)據(jù)庫的實(shí)例名(SID),然后確保tns名稱(ORCL23)在整個(gè)文檔中唯一,保存后打開數(shù)據(jù)庫連接工具,輸入遠(yuǎn)程數(shù)據(jù)庫上的用戶名密碼,選擇數(shù)據(jù)庫對(duì)象為你配置的連接名就可以了
網(wǎng)站標(biāo)題:oracle函數(shù)怎么解密 oracle密碼解鎖
網(wǎng)站鏈接:http://chinadenli.net/article26/hghocg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、小程序開發(fā)、面包屑導(dǎo)航、外貿(mào)網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)