关于我以前写的MySQL5加密存储过程所对应的解密函数

        陆续有很多网友email我索取我以前写的《mysql5存储过程编写实践》一文中所对应的解密存储过程,这次我把它列出来供需 要的朋友参考,其实这个加解密函数在一些简单应用中还是比较有用武之地的。

        函数的源码列出如下:

--
-- Function `aurora`.`fun_submm`
--

DROP FUNCTION IF EXISTS `fun_submm`;
DELIMITER $$

CREATE FUNCTION `fun_submm`(inpass varchar(11)) RETURNS varchar(10)
BEGIN
     declare string_in varchar(39) default '';
     declare string_out varchar(39) default '';
     declare offset tinyint(2) default 0;
     declare outpass varchar(30) default '';
     declare len tinyint default 0;
     /*declare ch char(1) default '';*/

     /**/
     set len=LENGTH(inpass);
     if((len<=0) or (len>11)) then
         return "";
     end if;

     set string_out='YN8K1JOZVURB3MDETS5GPL27AXWIHQ94C6F0#$_';
     set string_in='_$#ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';

     set offset=INSTR(string_out,SUBSTRING(inpass,1,1));
     insert into testtb value(offset,'offset');
     set @i=0;

     REPEAT
       set @i=@i+1;

       set @ch=SUBSTRING(inpass,@i+1,1);
       insert into testtb value(@i,@ch);
       set @pos=INSTR(string_out,@ch);
       set @pos=(@pos+39-offset) mod 39;
       insert into testtb value(@i,@pos);
       set outpass=CONCAT(outpass,SUBSTR(string_in,@pos,1));
       insert into testtb value(@i,outpass);
     UNTIL (@i>=len-1)
     end REPEAT;

     return outpass;
END $$

DELIMITER ;

 

至于过程,做简单的改造即可,在此久步赘述了。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值