Ⅰ 怎樣在資料庫里應用MD5加密,初學者不太懂
Oracle資料庫裡面可以使用PLsql編寫MD5加密的存儲過程或者函數,或者使用JAVA存儲過程。
Ⅱ 關於在SQl里對欄位進行MD5加密存儲的
md5加密有相關的加密函數,但不是在資料庫中操作的,資料庫只是來保存加密的結果字元串。
加密的話你找相關語言的加密函數就行
Ⅲ SQL用添加語句怎麼不能用MD5加密
對啊,sql語言內部沒有MD5函數!所以MD5函數不是內部函數!
Ⅳ sql MD5加密求助,怎麼弄。把密碼轉成MD5然後插入到SQL表中。
select a.fromstepid,
case a.isauto when 1 thgen b.tostepid else a.tostepid end as tostepid
from step a
left join step b on a.tostepid=b.fromstepid
where a.fromstepid not in
(select tostepid from step where isauto=1)
SQL Server2005,測試通過
Ⅳ 用存儲過程可以實現MD5加密嗎
沒有人會用存儲過程加密的。要加密的是傳輸過程中加啊,你都到存儲過程了還加密,沒意義了啊
Ⅵ 用MD5加密後,怎麼找回密碼
有時,在開發過程中,如果不小心更改掉了項目管理員帳號的密碼而又忘了,存在資料庫里的密碼又是MD5加密後的,這時候怎麼辦?最為菜鳥的我,剛開始也很迷茫,不過向前輩們請教了請教,自己也查了查資料,特意整理記錄一下,並分享給大家。
前提是你知道這個密碼存在在哪個表的哪個欄位,只不過是加密了,如果是oracle資料庫的話,可以用DBMS_OBFUSCATION_TOOLKIT.MD5
(
input
=>
utl_raw.cast_to_raw('預置密碼'))來得到一個MD5加密後的密碼,
所以我們可以在UPDATE
user
set
password=DBMS_OBFUSCATION_TOOLKIT.MD5
(
input
=>
utl_raw.cast_to_raw('預置密碼'))
where
name='sys'來重新把不知道的密碼用預置密碼替換掉,這樣我們就可用忘記密碼的帳號重新登錄了,如果是MySQL的話,好像有個內置MD5()函數,也可以起到這樣的效果,具體的大家可以查查詳細MySQL中MD5的用法,如果是SQL
Server的話,好像也有對應的MD5家嗎函數,記不太清了,應該是HashByte('加密方式',
'待加密的值'),也可以通過這種方式找回的。
DBMS_OBFUSCATION_TOOLKIT.MD5是oracle提供的獲得md5值的函數,可以直接使用DBMS_OBFUSCATION_TOOLKIT.MD5
(
input
=>
utl_raw.cast_to_raw('預置密碼'))a
FROM
DUAL來得到加密後的數據,否則得到的是raw類型的數據,需要用utl_raw.cast_to_raw轉換成我們常用的md5格式,還有以上得到的md5值都是大寫,如果資料庫中存儲的是小寫,需要再用lower函數轉換一下。
我們還可以使用存儲過程來實現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;
也可以寫成函數後調用實現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_usernamei_password)));
end
fun_get_md5;
sql>
select
fun_get_md5('zhangwz','123456')
from
al;
fun_get_md5('zhangwz','123456'
--------------------------------------------------------------------------------
下邊是網上摘了一個存取用戶密碼信息的例子,以供大家參考:
create
table
sys_user
(id
number,username
varchar2(50),password
varchar2(50));
存取用戶密碼的過程應該寫到存儲過程中,以方便以後調用,這里是盡量省略來寫。
用戶注冊時存入密碼:
sql>
insert
into
sys_user
values
(1001,'zhangwz',
fun_get_md5('zhangwz','123456'))
;
sql>
commit;
用戶登錄時取出密碼:
create
or
replace
procere
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;
Ⅶ 怎麼在sql語句中對數據進行md5加密
select substring(sys.fn_sqlvarbasetostr(HashBytes('MD5','你要加密的內容')),3,32)
Ⅷ 登陸界面連接sql server資料庫用MD5類的Hash演算法加密
說原理就行了。一般來說用戶注冊之後,把用戶提交的密碼,用MD5加密,資料庫保存加密之後的密文,可以不保存原始的明文。下次用戶登錄,輸入密碼之後,用MD5加密,然後用加密之後的密文和資料庫的密文匹配。如果一致的話就允許登錄。驗證的過程不需要驗證明文,密文一致就行了。資料庫被人盜了別人也很難破解原始的明文。