oracle 的加密解密函数

---加密---
FUNCTION decrypt(outpass in varchar2)
RETURN varchar2 IS
string_in varchar2(78);
string_out varchar2(39);
offset number(2);
inpass varchar2(30);

BEGIN
  string_in :='YN8K1JOZVURB3MDETS5GPL27AXWIHQ94C6F0#$_';
  string_out :='_$#ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; 
  offset:=instr(string_in,substr(outpass,1,1));
  string_in:=string_in||string_in;
  string_in:=substr(string_in,offset,39);
  inpass:=translate(upper(substr(outpass,2)),
          string_out,string_in);
return inpass;
end;

---解密---

FUNCTION encrypt (inpass in varchar2)
RETURN varchar2 IS
string_in varchar2(78);
string_out varchar2(39);
offset number(2);
outpass varchar2(30);
BEGIN
 offset :=to_number(to_char(sysdate,'ss'))mod 39;
 string_in :='YN8K1JOZVURB3MDETS5GPL27AXWIHQ94C6F0#$_';
 string_out :='_$#ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; 
 outpass :=substr(string_in,offset,1);
 string_in :=string_in||string_in;
 string_in :=substr(string_in,offset,39);
 outpass :=outpass||translate(upper(inpass),
          string_in,string_out);
 return outpass;
END;

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值