這個主要看軟件開發人員的加密方式
創新互聯公司2013年至今,是專業互聯網技術服務公司,擁有項目網站制作、成都網站設計網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元涼城做網站,已為上家服務,為涼城各地企業和個人服務,聯系電話:028-86922220
一般流程是,
1.新建用戶,或者修改密碼時候,將用戶輸入的密碼按照一定的加密方式加密后儲存在數據庫
2.在用戶登錄的時候,將用戶所輸入的密碼再次進行加密后與數據庫內的加密密碼對比
這樣做的好處是,防止密碼在網絡傳輸過程中被截取,比如黑客可以對網絡傳輸的數據進行抓包分析,對于加密的密碼在傳輸過程中不是以明文進行傳輸,如果被竊取到數據,不能得到有效破解,也是沒有用的,這就增加了可靠性。
可以例用Oracle
自帶的Wrap工具實現,此工具在$ORACLE_HOME/BIN目錄下,具體如下
1、設置字符集環境變量
set
NLS_LANG=CHINESE_CHINA.ZHS16GBK
2、創建一個存儲過程文件
在E:\下創建test.sql文件,內容如下:
create
or
replace
procedure
test1(i
in
number)
as
begin
dbms_output.put_line('
輸入參數是'||to_char(i));
end;
3、加密
c:\
cd
%ORACLE_HOME%\BIN
c:\wrap
iname=e:\test1.sql
PL/SQL
Wrapper:
Release
8.1.7.0.0
-
Production
on
Tue
Nov
27
22:26:48
2001
Copyright
(c)
Oracle
Corporation
1993,
2000.All
Rights
Reserved.
Processing
test1.sql
to
test1.plb
4、運行test1.plb
sqlplus
/nolog
SQLconn
TEST/TEST@db01
SQL
@e:\a.plb
過程已創建。
5、運行存儲過程
SQL
set
serveroutput
on
SQL
execute
test1(1);
輸入參數是1
PL/SQL
過程已成功完成。
6、查看存儲過程的代碼
SQL
select
name,text
from
all_source
where
type='PROCEDURE'
and
name='TEST1';
結果:看不到其原碼
1、DBMS_OBFUSCATION_TOOLKIT.MD5是MD5編碼的數據包函數
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;
select md5('123456') from dual;
MD5('123456')
e10adc3949ba59abbe56e057f20f883e
2、DES加密
create or replace function
encrypt_des(p_text varchar2, p_key varchar2) return varchar2 is
v_text varchar2(4000);
v_enc varchar2(4000);
raw_input RAW(128) ;
key_input RAW(128) ;
decrypted_raw RAW(2048);
begin
v_text := rpad( p_text, (trunc(length(p_text)/8)+1)*8, chr(0));
raw_input := UTL_RAW.CAST_TO_RAW(v_text);
key_input := UTL_RAW.CAST_TO_RAW(p_key);
dbms_obfuscation_toolkit.DESEncrypt(input = raw_input,key = key_input,encrypted_data =decrypted_raw);
v_enc := rawtohex(decrypted_raw);
dbms_output.put_line(v_enc);
return v_enc;
end;
DES加密:
update tb_salarysign_staff s set s.staffpwd =encrypt_des(s.staffpwd, 'test#5124*!de');
3、DES解密函數
create or replace function decrypt_des(p_text varchar2,p_key varchar2) return varchar2 is
v_text varchar2(2000);
begin
dbms_obfuscation_toolkit.DESDECRYPT(input_string = UTL_RAW.CAST_TO_varchar2(p_text),key_string =p_key, decrypted_string= v_text);
v_text := rtrim(v_text,chr(0));
dbms_output.put_line(v_text);
return v_text;
end;
DES解密:select decrypt_des(s.staffpwd, 'test#5124*!de') from tb_salarysign_staff s;
最簡單的,把sys收了,異用戶查詢授權。
要是涉及到代碼移交,那就用函數實現view,然后用DBMS_DDL.WRAP加密
文章題目:oracle密碼怎么加密 oracle密碼加密和解密算法
網頁鏈接:http://vcdvsql.cn/article44/hiodhe.html
成都網站建設公司_創新互聯,為您提供網站建設、全網營銷推廣、網站維護、做網站、網站營銷、App設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯