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資料加密(轉)Oracle加密
- 實驗4 c語言陣列應用程式設計C語言陣列程式設計
- GitHub CSP應用的經驗分享Github
- 實驗4_C語言陣列應用程式設計C語言陣列程式設計
- 實驗3 轉移指令跳轉原理及其簡單應用程式設計程式設計
- 鴻蒙Next安全之應用加密:保障應用程式碼安全鴻蒙加密
- Oracle實驗(02):轉換 & 轉譯Oracle
- 如何改善應用啟動效能 | Facebook 應用的經驗分享
- 後端應用分層經驗總結後端
- 眾多行業客戶採用Oracle管理雲提升使用者體驗和交付應用程式行業Oracle
- Hulu大資料架構與應用經驗大資料架構
- Serverless 應用開發的 7 個經驗心得Server
- 4.1.7 快速應用程式通知與Oracle重啟Oracle
- 【CentOS Linux 7】實驗4【Linux網路應用】CentOSLinux
- 如何使用Cisdem AppCrypt在Mac上給應用程式加密?APPMac加密
- 12年經驗老程式設計師5次轉型程式設計師
- 充電樁定期檢測應用經驗有哪些?
- Java 應用壓測效能問題定位經驗分享Java
- 4-6年經驗左右、優秀的 Java 程式設計師應該具備的技能Java程式設計師
- Native轉型Flutter經驗分享Flutter
- 實驗7 檔案應用程式設計程式設計
- Oracle insert大量資料經驗之談Oracle
- Part I 應用程式容器中的應用程式概述03-Oracle多租戶管理員指南Oracle
- 【開發經驗】幾種常見的加密方式加密
- 安卓應用效能除錯和優化經驗分享安卓除錯優化
- docker使用經驗總結(三、Docker compose基礎應用)Docker
- 有經驗的程式設計師應該如何提升自己程式設計師
- 4年 工作經驗,值多少錢?
- 實驗7_檔案應用程式設計程式設計
- 實用的管理經驗
- Oracle實時程式通訊(轉)Oracle
- 記一次微信小程式轉位元組跳動小程式的經驗微信小程式
- V4L2應用程式開發(1)
- PyQt4應用程式的PDF檢視器QT
- 程式設計實驗4程式設計
- Unite Mac,將網站轉換為應用程式Mac網站
- 網頁轉換應用程式工具:Coherence X for Mac網頁Mac
- 將網站轉化為應用程式Unite for Mac網站Mac
- Oracle閃回技術 概覽 應用程式開發功能Oracle