Oracle數(shù)據(jù)加密方法分析
本文實(shí)例講述了Oracle數(shù)據(jù)加密方法。分享給大家供大家參考,具體如下:
使用MD5編碼實(shí)現(xiàn)數(shù)據(jù)庫用戶密碼字段的加密
一、前言
眾所周知,MD5是目前應(yīng)用最多的密碼保護(hù)方法,該編碼傳說為不可逆加密編碼(也就是說,永運(yùn)無法倒算原碼)。 使用MD5加密用戶的操作密碼,可以有效防止系統(tǒng)維護(hù)人員直接進(jìn)入數(shù)據(jù)庫時(shí)出現(xiàn)系統(tǒng)安全漏洞(直接使用SELECT語句查詢,將用戶密碼字段只能看到亂碼,或者"****")
這里針對(duì)密碼字段加密,作一實(shí)例,希望能給大家系統(tǒng)建設(shè)過程帶來幫助。
二、技術(shù)點(diǎn)
1. DBMS_OBFUSCATION_TOOLKIT.MD5
DBMS_OBFUSCATION_TOOLKIT.MD5是MD5編碼的數(shù)據(jù)包函數(shù),但偶在使用select DBMS_OBFUSCATION_TOOLKIT.MD5(input_string =>'abc') a from Dual時(shí),卻有錯(cuò)誤提示,看來該函數(shù)只能直接在程序包中調(diào)用,不能直接應(yīng)用于SELECT語句。
2. Utl_Raw.Cast_To_Raw
DBMS_OBFUSCATION_TOOLKIT.MD5返回的字串,是RAW類型,要正確顯示,需要經(jīng)過Utl_Raw.Cast_To_Raw轉(zhuǎn)換
create or replace package test_md5 as
function fn_getmd5(p_str in varchar2)
return varchar2;
function fn_checkuser(p_username in varchar2,p_password in varchar2)
return number;
end;
create or replace package body test_md5 as
function fn_getmd5(p_str in varchar2)
return varchar2 as
begin
return DBMS_OBFUSCATION_TOOLKIT.MD5(
input_string => Upper(p_str)
);
end;
function fn_checkuser(p_username in varchar2,p_password in varchar2)
return number
is
l_password varchar(1000);
begin
select password into l_password from test_user
where upper(username)=upper(p_username) and password=Test_MD5.FN_GetMD5(p_password);
if l_password is null Then
return 0;
else
return 1;
end if;
exception
when NO_DATA_FOUND then
return 3;
end;
end;
測試:
Delete Test_User;
Insert Into Test_User Values('A',Test_MD5.FN_GetMD5('aa'));
Insert Into Test_User Values('B',Test_MD5.FN_GetMD5('bb'));
select * from test_user;
Select Test_MD5.FN_CheckUser('a','aa') From Dual;
Select Test_MD5.FN_CheckUser('a','bb') From Dual;
select * from Test_User t where t.password=test_md5.fn_getmd5('aa')
更多關(guān)于Oracle相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Oracle常用函數(shù)匯總》、《Oracle日期與時(shí)間操作技巧總結(jié)》及《php+Oracle數(shù)據(jù)庫程序設(shè)計(jì)技巧總結(jié)》
希望本文所述對(duì)大家Oracle數(shù)據(jù)庫程序設(shè)計(jì)有所幫助。
相關(guān)文章
Oracle中執(zhí)行動(dòng)態(tài)SQL
這篇文章介紹了Oracle中執(zhí)行動(dòng)態(tài)SQL的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05
使用geotools導(dǎo)入shp文件到Oracle數(shù)據(jù)庫時(shí)表名帶下劃線問題的解決方法
這篇文章主要介紹了使用geotools導(dǎo)入shp文件到Oracle數(shù)據(jù)庫時(shí)表名帶下劃線的問題解決 的相關(guān)資料,需要的朋友可以參考下2016-08-08
Oracle數(shù)據(jù)庫性能優(yōu)化技術(shù)開發(fā)者網(wǎng)絡(luò)Oracle
Oracle數(shù)據(jù)庫性能優(yōu)化技術(shù)開發(fā)者網(wǎng)絡(luò)Oracle...2007-03-03
Oracle 低權(quán)限數(shù)據(jù)庫賬戶得到 OS 訪問權(quán)限 提權(quán)利用
大概意思就是說,如果 ORACLE 服務(wù)是用 administrator 賬戶啟動(dòng)的,你只要有一個(gè)具有 resource 和 connect 權(quán)限的數(shù)據(jù)庫賬戶,就能利用 metasploit 的 smbrelay 功能,本地搭建一個(gè) SMB 欺騙服務(wù)器, 來得到系統(tǒng)的訪問權(quán)限。2009-06-06
oracle創(chuàng)建一個(gè)數(shù)據(jù)庫三步走
這篇文章主要介紹了oracle如何創(chuàng)建數(shù)據(jù)庫和用戶,以及每一步所涉及到的代碼,需要的朋友可以參考下2015-08-08
ORACLE 12C PDB 維護(hù)基礎(chǔ)知識(shí)介紹
CDB和PDB是ORACLE 12C一個(gè)很亮的新特性,由于他們的引入導(dǎo)致傳統(tǒng)的ORACLE數(shù)據(jù)庫管理理念不少發(fā)生了改變,這里列舉了部分最基本的cdb和pdb管理方式2016-09-09

