密碼欄位,使用md5加密,欄位儲存用raw,避免字符集的問題
SELECT DBMS_OBFUSCATION_TOOLKIT.MD5(input => utl_raw.cast_to_raw('tg')) a,
DBMS_OBFUSCATION_TOOLKIT.MD5(input => utl_raw.cast_to_raw('123456')) b,
DBMS_OBFUSCATION_TOOLKIT.MD5(input_string => 'tg') aa,
DBMS_OBFUSCATION_TOOLKIT.MD5(input_string => '123456') bb
FROM dual;
md5有二種方式:
1,輸入raw,輸出raw
2,輸入varchar2,輸出varchar2
如果使用varchar2,則bgk擴充套件unicode時可能出現異常(如果使用多重md5加密),for example:
FUNCTION EncryptPWD(p_User VARCHAR2, p_Pwd VARCHAR2) RETURN VARCHAR2 IS
v_Pwd VARCHAR2(60) := DBMS_OBFUSCATION_TOOLKIT.MD5(input_string => p_Pwd);
v_User VARCHAR2(60) := DBMS_OBFUSCATION_TOOLKIT.MD5(input_string => upper(p_User));
v_Cmb VARCHAR2(60);
BEGIN
IF p_User IS NULL OR p_Pwd IS NULL THEN
error(57001); --使用者名稱或密碼不允許為空
END IF;
FOR i IN 1 .. least(lengthb(v_Pwd), lengthb(v_User)) LOOP
v_Cmb := v_Cmb || substrb(v_User, i, 1) || substrb(v_Pwd, i, 1);
END LOOP;
RETURN DBMS_OBFUSCATION_TOOLKIT.MD5(input_string => v_Cmb);
END;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11990065/viewspace-754556/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 儲存大容量欄位出現的問題
- MySQL 大欄位問題MySql
- 在SQL Server中修改欄位型別和欄位名稱的儲存過程SQLServer型別儲存過程
- varchar or blob:欄位型別的儲存和溢位條件型別
- [20130106]關於不同字符集下clob欄位的儲存問題.txt
- 資料庫欄位問題資料庫
- 使用sqlldr匯入日期格式欄位的問題SQL
- 小議lob欄位結構和儲存
- MySQL5.7密碼欄位變更MySql密碼
- SAP WM中階儲存型別裡的Full stk rmvl 欄位和Return Storage type欄位型別
- pydantic 欄位欄位校驗
- mysql修改表、欄位、庫的字符集MySql
- ORACLE 加密(TDE) 對欄位加密測試Oracle加密
- varchar型別的欄位儲存純數字的排序型別排序
- abc欄位數的使用
- MSWord-用欄位程式碼混淆
- MySQL中NULL欄位的比較問題MySqlNull
- MySQL 如何儲存長度很長的資料欄位MySql
- 更新大表中某個欄位的儲存過程儲存過程
- LONG RAW的欄位型別不能使用impdp + dblink遷移型別
- mssql sqlserver 可以儲存二進位制資料的欄位型別詳解SQLServer型別
- fastadmin 新增欄位記圖片欄位AST
- 【Mongo】mongo更新欄位為另一欄位的值Go
- MySQL - 一個欄位儲存多個ID時的查詢MySql
- 欄位排序排序
- mysql-欄位設定Default值問題MySql
- oracle 時間欄位自動更新問題Oracle
- 主表子表動態欄位儲存實現方式總結
- 巧用欄位對映實現指定欄位的搜尋
- [BUG反饋]模型管理 > 欄位管理看不見任何欄位。這表明顯有欄位、!模型
- 不確定的資料結構試驗clob欄位儲存資料結構
- 巧用 Base62 解決欄位太短的問題
- api 介面欄位規範的問題,請教大家API
- MySQL中需要注意的欄位長度問題MySql
- 關於oracle中blob欄位的錄入問題Oracle
- resultMap 和 resultType 的欄位對映覆蓋問題
- MySQL表、欄位、庫的字符集修改方法介紹MySql
- OGG複製與加密欄位的衝突加密