1. 程式人生 > >oracle中針對欄位進行md5加密

oracle中針對欄位進行md5加密

    最近遇到個問題,需要批量修改cardinfo 和account表的密碼,密碼規則是根據車牌號碼或者證件號碼的後4位,密碼進行md5加密。

  當時接到任務時本來想著通過程式將需要的資料查出來,然後針對每條記錄進行md5加密。後來經過領導提示可否直接通過oracle資料庫直接獲取md5密碼,然後直接更新,這樣可能會快些。

通過研究發現竟然針對實現了通過 md5密碼加密過程。現將過程如下:

  1. 新建個函式

    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'