每日一刷(攻防世界web2)

题目来源:攻防世界web2

题目分析:

<?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";

function encode($str){
    $_o=strrev($str);//strre翻转
    // echo $_o;
        
    for($_0=0;$_0<strlen($_o);$_0++){
       
        $_c=substr($_o,$_0,1);//substr字符串裁剪,获取1个位置在$0处
        $_ _=ord($_c)+1;//ord函数获取$c的ascll码值
        $_c=chr($__);//把ascll码转换为字符串
        $_=$_.$_c;   //$_ = $_ . $_c 表示将变量 $_c 添加到变量 $_ 的末尾,并将新的结果赋值给变量 $_。//$_默认为空
    } 
    return str_rot13(strrev(base64_encode($_)));//先base加密,然后翻转,rot加密(要对ROT13加密进行解密,只需要再次应用ROT13算法即可。ROT13是一种简单的字母替换密码,将字母表中的每个字母向后移动13个位置。)
}

highlight_file(__FILE__);

思路分析:

逆向解密,反着来:

原文->翻转->提取字符->ascll+1->base64编码->翻转->rot13加密(rot13解密:对密文再次加密即可)

密文->rot13解密->翻转->base64解码->提取字符->ascll码-1->翻转->原文

代码演示:

<?php
$b='';
$a="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";
$a=base64_decode(strrev(str_rot13($a)));
for($_0=0;$_0<strlen($a);$_0++){     
        $_c=substr($a,$_0,1);
        $__=ord($_c)-1;
        $_c=chr($__);
        $b=$b.$_c;     
    } 
echo strrev($b);
?>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值