题目地址:http://ctf5.shiyanbar.com/web/web200.jpg

打开就是个自定义加密函数,只要写出相应的解密算法就行

 <?php
function encode($str){
$_o=strrev($str);
for($_0=0;$_0<strlen($_o);$_0++){
$_c=substr($_o,$_0,1);
$__=ord($_c)+1;
$_c=chr($__);
$_=$_.$_c;
}
return str_rot13(strrev(base64_encode($_)));
}

先看看其中几个函数

strrev() 函数反转字符串。

str_rot13() 编码然后解码字符串,编码和解码都是由相同的函数完成的。如果您把已编码的字符串作为参数,那么将返回原始字符串。

ord() 字符转ascii码

chr() ascii码转字符

于是写出解密算法:

 function decode($str){
$str=str_rot13($str);
$str=strrev($str);
$str=base64_decode($str); $res='';
for($i=0;$i<strlen($str);$i++){
$c=chr(ord($str[$i])-1);
$res.=$c;
}
$res=strrev($res); return $res;
}

其实加密的核心就是把每个字符向前移了一位(ascii码加1),解密再减回来就好啦,还是很简单的

最新文章

  1. Entity Framework 6 Recipes 2nd Edition(10-4)译 -&gt; 从存储过程返回一个复杂类型
  2. 10个常见的Node.js面试题
  3. No row with the given identifier exists:
  4. java获取注册ip
  5. 对于 ThreadLocal 的理解和应用
  6. 微信下输入法在IOS和安卓下的诡异
  7. SSH 无密码远程执行脚本
  8. Android开发者需要面对的8大挑战
  9. Javascript 数组循环遍历之forEach
  10. crawler_如何从页面获取新浪cookie
  11. [POJ] String Matching
  12. Eclipse 注释
  13. 小试牛刀JavaScript鼠标事件
  14. 这是一篇关于:以时间表的形式来介绍Java如何演变至今,以及Java版本的一些特性的分享
  15. 填坑:在 SegmentFault 开发单页应用之图片引用的问题探索
  16. Snapde和Excel、PowerPivot、WPS打开超大CSV文件性能比较
  17. javascript事件之调整大小(resize)事件
  18. jquery和ajax和springmvc
  19. 《Android进阶之光》--事件总线
  20. ios实例开发精品文章推荐(8.19)

热门文章

  1. Python 函数小程序初解
  2. 查看tensorflow是否为MKL版本命令
  3. The 13th Chinese Northeast Collegiate Programming Contest
  4. Linux ssh 密钥创建与验证
  5. Linux性能优化实战学习笔记:第五十讲
  6. [LeetCode] 490. The Maze 迷宫
  7. div 中 id 和 class使用详解【转】
  8. 去掉DataGridView最后一行的空白行,删除空白行
  9. HTML连载30-CSS显示模式&amp;模式转换
  10. Visual Studio2017专业版和企业版密钥