XCTF2-web 解密

本文深入探讨了一个使用PHP实现的逆向加密算法,该算法结合了字符串反转、ASCII值加1、base64编码和str_rot13编码。提供了解密代码,通过base64解码、反转字符串、减1操作以及str_rot13解码来还原原始信息。此文章适合对加密算法感兴趣的PHP开发者阅读。
摘要由CSDN通过智能技术生成

web2

进入场景
 <?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()函数:返回字符串的一部分。substr(string,start,length)
ord()函数:返回字符串中第一个字符的 ASCII 值。
chr()函数:从指定 ASCII 值返回字符。ASCII 值可被指定为十进制值、八进制值或十六进制值。八进制值被定义为带前置 0,十六进制值被定义为带前置 0x。
“.”操作符是字符串拼接操作符。
base64_encode()函数是base64加密,对应的解密函数是base64_decode()。
str_rot13() 函数对字符串执行 ROT13 编码。ROT13 编码把每一个字母在字母表中向前移动 13 个字母,数字和非字母字符保持不变。对应的编码和解码都是由相同的函数完成的,如果把已编码的字符串作为参数,那么将返回原始字符串。

编写解密代码:

<?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";


$jiemi = base64_decode(strrev(str_rot13($miwen)));
echo $jiemi."<br>";
$a = strrev($jiemi);
// echo strlen($a);

for($i=0;$i<strlen($a);$i++){
    $_c=substr($a,$i,1);
    $__=ord($_c)-1;
    $_c =chr($__);
    // echo $_c."<br>";
    $_c=$_.$_c;
    echo $_c;
}

?>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值