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