日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
找回MD5加密的密碼及MD5加密數(shù)據(jù)庫(kù)中數(shù)據(jù)

有時(shí),在開(kāi)發(fā)過(guò)程中,如果不小心更改掉了項(xiàng)目管理員帳號(hào)的密碼而又忘了,存在數(shù)據(jù)庫(kù)里的密碼又是MD5加密后的,這時(shí)候怎么辦?最為菜鳥(niǎo)的我,剛開(kāi)始也很迷茫,不過(guò)向前輩們請(qǐng)教了請(qǐng)教,自己也查了查資料,特意整理記錄一下,并分享給大家。

前提是你知道這個(gè)密碼存在在哪個(gè)表的哪個(gè)字段,只不過(guò)是加密了,如果是oracle數(shù)據(jù)庫(kù)的話,可以用DBMS_OBFUSCATION_TOOLKIT.MD5 ( input => utl_raw.cast_to_raw('預(yù)置密碼'))來(lái)得到一個(gè)MD5加密后的密碼,

所以我們可以在UPDATE user set password=DBMS_OBFUSCATION_TOOLKIT.MD5 ( input => utl_raw.cast_to_raw('預(yù)置密碼')) where name='sys'來(lái)重新把不知道的密碼用預(yù)置密碼替換掉,這樣我們就可用忘記密碼的帳號(hào)重新登錄了,如果是MySQL的話,好像有個(gè)內(nèi)置MD5()函數(shù),也可以起到這樣的效果,具體的大家可以查查詳細(xì)MySQL中MD5的用法,如果是SQL Server的話,好像也有對(duì)應(yīng)的MD5家嗎函數(shù),記不太清了,應(yīng)該是HashByte('加密方式', '待加密的值'),也可以通過(guò)這種方式找回的。

DBMS_OBFUSCATION_TOOLKIT.MD5是oracle提供的獲得md5值的函數(shù),可以直接使用DBMS_OBFUSCATION_TOOLKIT.MD5 ( input => utl_raw.cast_to_raw('預(yù)置密碼'))a FROM DUAL來(lái)得到加密后的數(shù)據(jù),否則得到的是raw類(lèi)型的數(shù)據(jù),需要用utl_raw.cast_to_raw轉(zhuǎn)換成我們常用的md5格式,還有以上得到的md5值都是大寫(xiě),如果數(shù)據(jù)庫(kù)中存儲(chǔ)的是小寫(xiě),需要再用lower函數(shù)轉(zhuǎn)換一下。

我們還可以使用存儲(chǔ)過(guò)程來(lái)實(shí)現(xiàn)MD5加密:

declare
v_string varchar2(50);
v_n number;
begin
v_string := utl_raw.cast_to_raw(sys.dbms_obfuscation_toolkit.md5(input_string => '123456'));
v_n := length(v_string);
dbms_output.put_line(v_string || '--' || v_n);
end;

也可以寫(xiě)成函數(shù)后調(diào)用實(shí)現(xiàn)MD5加密:

create or replace function fun_get_md5(i_username in varchar2, i_password in varchar2)
return varchar2 is
begin
return utl_raw.cast_to_raw(dbms_obfuscation_toolkit.md5(input_string => (i_username||i_password)));
end fun_get_md5;
sql> select fun_get_md5('zhangwz','123456') from dual;
fun_get_md5('zhangwz','123456'
--------------------------------------------------------------------------------
0d8df9100cd33ef80af0527858136e0b

下邊是網(wǎng)上摘了一個(gè)存取用戶密碼信息的例子,以供大家參考:

create table sys_user (id number,username varchar2(50),password varchar2(50));

存取用戶密碼的過(guò)程應(yīng)該寫(xiě)到存儲(chǔ)過(guò)程中,以方便以后調(diào)用,這里是盡量省略來(lái)寫(xiě)。

用戶注冊(cè)時(shí)存入密碼:

sql> insert into sys_user values (1001,'zhangwz', fun_get_md5('zhangwz','123456')) ;
sql> commit;

用戶登錄時(shí)取出密碼:

create or replace procedure p_login(i_uname varchar2
,i_passwd varchar2) is
v_id number;
v_error_text varchar2(200);
begin
select id
into v_id
from sys_user
where username = i_uname
and password = fun_get_md5(i_uname, i_passwd);
exception
when others then
v_error_text := '用戶名或密碼不正確!' || ',sqlcode:' || sqlcode ||
' sqlerrm:' || substr(sqlerrm ,1 ,200);
end p_login;

網(wǎng)站標(biāo)題:找回MD5加密的密碼及MD5加密數(shù)據(jù)庫(kù)中數(shù)據(jù)
瀏覽路徑:http://www.5511xx.com/article/ccedjje.html