手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆

转一个别人写的所谓加解密函数

首页 > PHP >

这段代码不是挺复杂,其实如果你细看是可以看得到discuz中的authcode的影子的。如果你有兴趣,你可以看看:

源代码来自:http://blog.csdn.net/long892230/article/details/7562613
  1. /*加密函数内部调用函数*/    
  2. function keyED($txt,$encrypt_key) {      
  3.     $encrypt_key = md5($encrypt_key);      
  4.     $ctr=0;      
  5.     $tmp = "";      
  6.     for ($i=0;$i<strlen($txt);$i++) {      
  7.     if ($ctr==strlen($encrypt_key)) $ctr=0;      
  8.     $tmp.substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1);      
  9.     $ctr++;      
  10.     }      
  11.     return $tmp;      
  12. }     
  13.     
  14. /*发送邮件中连接地址的加密函数*/        
  15. function inner_DYEncrypt( $encryptstr ){     
  16.     return  urlencode(inner_DYEncrypt_subfun($encryptstr));     
  17. }     
  18.     
  19. function inner_DYEncrypt_subfun($encryptstr){     
  20.     srand((double)microtime()*1000000);      
  21.     $encrypt_key = md5(rand(0,32000));      
  22.     $ctr=0; $tmpstr = "";      
  23.     for ($i=0;$i<strlen($encryptstr);$i++){      
  24.         if ($ctr==strlen($encrypt_key)) $ctr=0;      
  25.         $tmpstr.substr($encrypt_key,$ctr,1) .      
  26.         (substr($encryptstr,$i,1) ^ substr($encrypt_key,$ctr,1));      
  27.         $ctr++;      
  28.     }      
  29.     $returninfo = base64_encode(keyED($tmpstr,ENCRYPTKEY));      
  30.     if (strrpos($returninfo,"/") or strrpos($returninfo,'') or strrpos($returninfo,'+'))     
  31.         return inner_DYEncrypt_subfun( $encryptstr );     
  32.     return $returninfo;     
  33.          
  34. }     
  35.     
  36. /*发送邮件中连接地址的解密函数*/        
  37. function inner_DYDecrypt( $decryptstr ){     
  38.     $decryptstr = urldecode($decryptstr);     
  39.     $decryptstr = keyED(base64_decode($decryptstr),ENCRYPTKEY);      
  40.     $tmpstr = "";      
  41.     for ($i=0;$i<strlen($decryptstr);$i++){      
  42.         $md5 = substr($decryptstr,$i,1);      
  43.         $i++;      
  44.         $tmpstr.= (substr($decryptstr,$i,1) ^ $md5);      
  45.     }     
  46.     return  $tmpstr;      
  47. }     
  48.     
  49. /*演示*/    
  50.     $key = "rdid=5135"; //待加密的字符串     
  51.     echo "待加密的字符串:".$key."";     
  52.     $key = inner_DYEncrypt($key);     
  53.     echo "加密后的字符串:".$key."";     
  54.     echo "解密后的字符串:".inner_DYDecrypt($key);     
  55.     
  56. ?>  

发完这个贴子的时候突然发现。我好久没有写博客了。倒不是不坚持,而是发现我实在没有什么东西好写了。一直吃老本,还能写什么?

 

 
 



本站采用创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"易栈网-膘叔", 保留原始链接, 此外还必须标注原文标题和链接.

Tags: discuz

« 上一篇 | 下一篇 »

只显示10条记录相关文章

PHP sendmail (浏览: 38761, 评论: 7)
漫游(manyou)简介 (浏览: 27652, 评论: 1)
discuz数据表优化 (浏览: 25589, 评论: 1)
开发你的uc应用 (浏览: 20496, 评论: 0)
升级到 SS 7.5,没啥感觉 (浏览: 18437, 评论: 0)
Discuz Uchome 小技巧 (浏览: 16480, 评论: 0)

发表评论

评论内容 (必填):