(41)学长发的题

学长发的题

这个题

image-20250301213439920

以上内容都是我经过修改的,便于理解。

我们要解密,我们就要从第三步来开始解题。

以下是函数三内容

image-20250301213742650

解题磨难

加密3

这个解密我,我刚开始的想法是爆破,但是经过我爆破之后,他呈现的答案非常多,因为我的那个v8_这个我从0-256范围,然后他会有好几个结果是可以呈现的。所以遇到求余,我们不要直接开始爆破。

经过我在网上查找,他这个加密属于凯撒加密。但是我并不清楚这个加密的原理,所以解密我也不懂。然后这个解密很简单,不需要爆破。只需要改个符号。

例如:

*a3 = (v8_ - 65 + 3) % 26 + 65;      解密:*a3 = (v8_ - 65 - 3) %26 + 65; 

我们只需要把后面的+改成-然后求出的a3就是我们的v8_

加密2

image-20250301214254464

以上就是改变顺序,我们直接在Python里面直接用切片直接就可以解出

加密1

image-20250301214348592

以上这个代码,在刚开始,我写了一部分代码,但是实在实在不会写,因为我理解但动手能力弱。也有个原因是我对base64的原理遗忘了。看到这个没想到base64,在之后的求解中我才发现这个是base64.所以就直接用python就解开了。

代码

import array
import base64
​
def decode_three(enc3):
    enc2 = ''
    for k in range(len(enc3)):
        current_char = enc3[k]
        code = ord(current_char)
​
        # 条件判断
        if code <= 64 or code > 90:
            if code <= 96 or code > 122:
                if code <= 47 or code > 57:
                    enc2 += current_char
                else:
​
                    decoded = (code - 48 - 3) % 10 + 48
                    enc2 += chr(decoded)
            else:
​
                decoded = (code - 97 - 3) % 26 + 97
                enc2 += chr(decoded)
        else:
​
            decoded = (code - 65 - 3) % 26 + 65
            enc2 += chr(decoded)
    return enc2
​
def decode_two (enc2):
    enc1=[0] * 52
    enc1[26:39]=enc2[:13]
    enc1[0:13]=enc2[13:26]
    enc1[39:52]=enc2[26:39]
    enc1[13:26]=enc2[39:52]
    return enc1
​
​
​
base='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/A'
enc3='QmBmT3CWB5PpTT58Le58qV5Y0B3PcfcBWT4Bq3=WgnCmD8PcP7PG'
enc2 = decode_three(enc3)
enc1=decode_two(enc2)
enc=''.join(enc1)
flag=base64.b64decode(enc)
flag=flag.decode()
print(flag)
#print(enc2)
#print(''.join(enc1))
​
#enc2=NjYjQ0ZTY2MmQQ25Ib25nS2V7Y0MzczYTQ1Yn0=TdkZjA5MzM4MD
#enc1=Q25Ib25nS2V7YTdkZjA5MzM4MDNjYjQ0ZTY2MmQ0MzczYTQ1Yn0=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值