ORACLE应用经验(4)-加密程序[转载]

本文介绍了一种在Oracle数据库中实现数据加密的方法,包括创建用于数据加密的触发器和编写加密函数的具体步骤。通过这些方法可以有效地保护敏感数据的安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ORACLE应用经验(4)-加密程序
-------------1.加密程序数据库触发子scjmmm----------------------
REM
GHXXB制立数据库触发子(INSERTORUPDATEGHXXB时触发)
droptriggerscjmmm;
createorreplacetriggerscjmmm
beforeinsertorupdateofmmOnghxxbForeachRow
Begin
:new.mm:=ENCRYPT(:new.mm,:NEW.GH,TO_CHAR(SYSDATE,'SS'));
End;
/
-------------2.
密码的加密程序ENCRYPT----------------------
CreateorReplace
FunctionENCRYPT(InpassInVarchar2,IN_GHInVarchar2,IN_SSInVarchar2)
ReturnVarchar2Is
bcsvarchar2(20);
bcs1number;
csnumber;
jgnumber;
m_ghVARCHAR2(4);
m_mmVARCHAR2(20);
Begin
m_gh:=IN_GH;
m_mm:=INPASS;
cs:=TO_NUMBER(IN_SS);
Ifcs<=1thencs:=77;endif;
bcs:=substr(to_char(ascii(substr(m_gh,1,1))),1,2);
Ifbcs<'1'thenbcs:='7';endif;
m_gh:=substr(m_gh,2);
LoopEXITWHENnvl(length(m_gh),0)=0;
bcs:=bcs||substr(to_char(ascii(substr(m_gh,1,1))),-1,1);
m_gh:=substr(m_gh,2);
Endloop;
LoopEXITWHENnvl(length(m_mm),0)=0;
bcs:=bcs||substr(to_char(ascii(substr(m_mm,1,1))),-1,1);
m_mm:=substr(m_mm,2);
Endloop;
bcs1:=to_number(bcs);
jg:=cs*bcs1;
LoopEXITWHENlength(to_char(jg))>13;
jg:=jg*cs;
Endloop;
RETURN(IN_SS||substr(to_char(jg),1,14));
End;
/
grantexecuteonENCRYPTtopublic;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值