oracle中針對欄位進行md5加密
阿新 • • 發佈:2019-02-10
最近遇到個問題,需要批量修改cardinfo 和account表的密碼,密碼規則是根據車牌號碼或者證件號碼的後4位,密碼進行md5加密。
當時接到任務時本來想著通過程式將需要的資料查出來,然後針對每條記錄進行md5加密。後來經過領導提示可否直接通過oracle資料庫直接獲取md5密碼,然後直接更新,這樣可能會快些。
通過研究發現竟然針對實現了通過 md5密碼加密過程。現將過程如下:
-
新建個函式
md5加密的儲存過程函式1 2 3 4 5 6 7 8 9 10 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
;
2. 直接在oracle中進行使用函式進行md5加密
測試md5加密1 2 3 4 5 6 7 8 9 10 11 |
update ac_cardinfo
ac
set ac.cardpwd=md5(substr(ac.plateno,length(ac.plateno)-3)) where ac.cardno=1141230010008626
---
update ac_account
ac
set ac. password =md5(substr(ac.certno,length(ac.certno)-3))
where ac.certno= '612128197606275527'
|