ORACLE應用經驗(4)-加密程式(轉)
ORACLE應用經驗(4)-加密程式[@more@]-------------1. 加密程式資料庫觸發子scjmmm----------------------
REM 對GHXXB制立資料庫觸發子(當INSERT OR UPDATE GHXXB時觸發)
drop trigger scjmmm;
create or replace trigger scjmmm
before insert or update of mm On ghxxb For each Row
Begin
:new.mm:=ENCRYPT(:new.mm,:NEW.GH,TO_CHAR(SYSDATE,'SS'));
End;
/
-------------2. 密碼的加密程式ENCRYPT----------------------
Create or Replace
Function ENCRYPT (Inpass In Varchar2,IN_GH In Varchar2,IN_SS In Varchar2)
Return Varchar2 Is
bcs varchar2(20);
bcs1 number;
cs number;
jg number;
m_gh VARCHAR2(4);
m_mm VARCHAR2(20);
Begin
m_gh:=IN_GH;
m_mm:=INPASS;
cs:=TO_NUMBER(IN_SS);
If cs<=1 then cs:=77 ;end if;
bcs:=substr(to_char(ascii(substr(m_gh,1,1))),1,2);
If bcs m_gh:=substr(m_gh,2);
Loop EXIT WHEN nvl(length(m_gh),0)=0 ;
bcs:=bcs||substr(to_char(ascii(substr(m_gh,1,1))),-1,1);
m_gh:=substr(m_gh,2);
End loop;
Loop EXIT WHEN nvl(length(m_mm),0)=0 ;
bcs:=bcs||substr(to_char(ascii(substr(m_mm,1,1))),-1,1);
m_mm:=substr(m_mm,2);
End loop;
bcs1:=to_number(bcs);
jg:=cs*bcs1;
Loop EXIT WHEN length(to_char(jg))>13;
jg:=jg*cs ;
End loop;
RETURN(IN_SS||substr(to_char(jg),1,14));
End;
/
grant execute on ENCRYPT to public;
REM 對GHXXB制立資料庫觸發子(當INSERT OR UPDATE GHXXB時觸發)
drop trigger scjmmm;
create or replace trigger scjmmm
before insert or update of mm On ghxxb For each Row
Begin
:new.mm:=ENCRYPT(:new.mm,:NEW.GH,TO_CHAR(SYSDATE,'SS'));
End;
/
-------------2. 密碼的加密程式ENCRYPT----------------------
Create or Replace
Function ENCRYPT (Inpass In Varchar2,IN_GH In Varchar2,IN_SS In Varchar2)
Return Varchar2 Is
bcs varchar2(20);
bcs1 number;
cs number;
jg number;
m_gh VARCHAR2(4);
m_mm VARCHAR2(20);
Begin
m_gh:=IN_GH;
m_mm:=INPASS;
cs:=TO_NUMBER(IN_SS);
If cs<=1 then cs:=77 ;end if;
bcs:=substr(to_char(ascii(substr(m_gh,1,1))),1,2);
If bcs m_gh:=substr(m_gh,2);
Loop EXIT WHEN nvl(length(m_gh),0)=0 ;
bcs:=bcs||substr(to_char(ascii(substr(m_gh,1,1))),-1,1);
m_gh:=substr(m_gh,2);
End loop;
Loop EXIT WHEN nvl(length(m_mm),0)=0 ;
bcs:=bcs||substr(to_char(ascii(substr(m_mm,1,1))),-1,1);
m_mm:=substr(m_mm,2);
End loop;
bcs1:=to_number(bcs);
jg:=cs*bcs1;
Loop EXIT WHEN length(to_char(jg))>13;
jg:=jg*cs ;
End loop;
RETURN(IN_SS||substr(to_char(jg),1,14));
End;
/
grant execute on ENCRYPT to public;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9417382/viewspace-938095/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE應用經驗(2)(轉)Oracle
- ORACLE應用經驗(1)(轉)Oracle
- ORACLE應用經驗(5)-表空間(轉)Oracle
- ORACLE 應用經驗(form)OracleORM
- ORACLE應用經驗(5)-表空間Oracle
- ORACLE應用經驗(3)-DBMS_SQL封裝過程(轉)OracleSQL封裝
- ORACLE使用經驗(轉)Oracle
- Linux程式應用開發環境和工具經驗談(轉)Linux開發環境
- Oracle資料庫學習應用:經驗分享Oracle資料庫
- Delphi實用程式設計經驗二 (轉)程式設計
- Oracle經驗集錦(轉)Oracle
- Delphi實用程式設計經驗二則 (轉)程式設計
- 創新性應用 資料建模經驗談(轉)
- Oracle程式設計經驗及維護點滴(轉)Oracle程式設計
- GitHub CSP應用的經驗分享Github
- Facebook應用Mercurial經驗談
- 實驗4 C語言陣列應用程式設計C語言陣列程式設計
- 用Delphi 開發資料庫程式經驗三則 (轉)資料庫
- 一般應用程式的oracle配置 (轉)Oracle
- [轉載] 全面學習和應用ORACLE ASM特性(4),(5)OracleASM
- 實驗4_C語言陣列應用程式設計C語言陣列程式設計
- 如何改善應用啟動效能 | Facebook 應用的經驗分享
- ORACLE簡單應用 (轉)Oracle
- 後端應用分層經驗總結後端
- Oracle資料庫及應用程式最佳化(轉)Oracle資料庫
- 學會用經驗計劃專案(轉)
- 用JavaServer Faces開發Web應用(4) (轉)JavaServerWeb
- ORACLE資料加密(轉)Oracle加密
- VB程式介面設計經驗點滴 (轉)
- 實驗3 轉移指令跳轉原理及其簡單應用程式設計程式設計
- Serverless 應用開發的 7 個經驗心得Server
- Hulu大資料架構與應用經驗大資料架構
- 將SOA經驗應用於Web 2.0實現Web
- 建立安卓應用的 30 個經驗教訓安卓
- Oracle經驗技巧集Oracle
- Lotus 經驗談(轉)
- Oracle資料庫系統使用經驗六則(轉)Oracle資料庫
- 應聘者輕專業 招聘者重經驗 (轉)