数据加密与解密

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

--加密

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  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值