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;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章