bugku 抄错的字符

题目:
老师让小明抄写一段话,结果粗心的小明把部分数字抄成了字母,还因为强迫症把所有字母都换成大写。你能帮小明恢复并解开答案吗:QWIHBLGZZXJSXZNVBZW

根据题目描述,可知 字符串原来是字母大小写+数字的。
而数字和字母相似的有 I(i)=>1、L(l)=>1、G(g)=>9、Z(z)=>2、S(s)=>5。

<?php
$list=[];
function fun($str,$index=0){

    if($index==strlen($str)){
        global $list;
        $ret=base64_decode($str);
        $list[]=$ret;
        return false;
    }
    $head=substr($str,0,$index);
    $mid=substr($str,$index,1);
    $end=substr($str,$index+1,strlen($str)-$index);
    $words=getWord($mid);
    foreach ($words as $key=>$v){
        $newStr=$head.$v;
        $ret=base64_decode($newStr);
        if(!preg_match('/[^a-zA-Z\d\_\-]/is',$ret)){
            fun($newStr.$end,$index+1);
        }
    }
}
function getWord($c){
    $word=["I"=>1, 'L'=>1, 'G'=>9, 'Z'=>2, 'S'=>5];
    $arr=[$c,strtolower($c)];
    if(isset($word[$c])){
        $arr[]=$word[$c];
    }
    return $arr;
}
$str="QWIHBLGZZXJSXZNVBZW";
fun($str);
var_dump($list);
?>

共跑出720条字符串。
在这里插入图片描述
搜索Aman开头的字符串(因为作者昵称为Aman)找到最符合的一条字符串
在这里插入图片描述

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值