标签:yum 单个字符 for 位置 base rev sub sdn 加密
<?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";
function encode($str){
$_o=strrev($str);
// echo $_o;
for($_0=0;$_0<strlen($_o);$_0++){
$_c=substr($_o,$_0,1);
$__=ord($_c)+1;
$_c=chr($__);
$_=$_.$_c;
}
return str_rot13(strrev(base64_encode($_)));
}
highlight_file(__FILE__);
/*
逆向加密算法,解密$miwen就是flag
*/
?>
定义用法:strrev()
定义:
用法:substr(string,start,length)
<?php
$a="hello world";
$b=substr($a, 6);
$c=substr($a, 7,1);
echo $b,PHP_EOL;
echo $c;
world
o
?>
定义:
<?php
echo ord("s");
echo ord("string");
115
115
?>
定义:
<?php
echo chr(61); //十进制
echo chr(061); //八进制
echo chr(0x61); //十六进制
=
1
a
?>
传入的字符串,翻转得到$_o
遍历每个字符
每个字符ord(),得到ASCII,再加1
将得到的数,chr(),编程字符
得到整个字符串
base64加密,反转,rot13加密,得到miwen
//解密脚本
<?php
$str="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";
$a=base64_decode(strrev(str_rot13($str)));
$b="";
for($x=0;$x<strlen($a);$x++){
$y=substr($a, $x,1);
$z=ord($y)-1;
$d=chr($z);
$b=$b.$d;
}
echo strrev($b);
//flag:{NSCTF_b73d5adfb819c64603d7237fa0d52977}
?>
参考链接:
https://blog.csdn.net/weixin_42499640/article/details/99102049
标签:yum 单个字符 for 位置 base rev sub sdn 加密
原文地址:https://www.cnblogs.com/observering/p/12849735.html