关闭

数据加密与解密

1188人阅读 评论(0) 收藏 举报

提供一种简单的数据加密与解密方法, 以下为实现函数, 其中一个为数据加密, 另一个对加密的数据解密.

--加密

create or replace function encrypt(p_in in varchar2)
return varchar2
as
    v_string_in varchar2(78);
    v_string_out varchar2(39);
    v_offset number(2);
    v_outpass varchar2(30);
begin
    v_offset:=to_number(to_char(sysdate,'ss')) mod 39;
    v_string_in:='YN8K1JOZVYRB3MDETS5GPL27AXWIHQ94C6F0#$_';
    v_string_out:='_$#ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    v_outpass:=substr(v_string_in,v_offset,1);
    v_string_in:=v_string_in||v_string_in;
    v_string_in:=substr(v_string_in,v_offset,39);
    v_outpass:=v_outpass||translate(upper(p_in),v_string_in,v_string_out);

    return v_outpass;
end;
/

 

--解密

create or replace function decrypt(p_in in varchar2)
return varchar2
as
    v_string_in varchar2(78);
    v_string_out varchar2(39);
    v_offset number(2);
    v_outpass varchar2(30);
begin
   
    v_string_in:='YN8K1JOZVYRB3MDETS5GPL27AXWIHQ94C6F0#$_';
    v_string_out:='_$#ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    --v_offset:=to_number(to_char(sysdate,'ss')) mod 39;
    v_offset:=instr(v_string_in,substr(p_in,1,1));
    --v_outpass:=substr(v_string_in,v_offset,1);
    v_string_in:=v_string_in||v_string_in;
    v_string_in:=substr(v_string_in,v_offset,39);
    v_outpass:=v_outpass||translate(upper(p_in),v_string_in,v_string_out);
    v_outpass:=translate(upper(substr(p_in,2)),v_string_out,v_string_in);
    return v_outpass;
end;

 

#   Dinya  

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:138126次
    • 积分:2009
    • 等级:
    • 排名:第19145名
    • 原创:56篇
    • 转载:20篇
    • 译文:2篇
    • 评论:17条
    文章分类
    最新评论