【CTF】加解密专题

0x00:字母加密

弱智的要死。题目给了一串数字码 看到最大的是26 所以联想到是最初级的字母加密

13 15 26 08 05 25 05 19

python3版解字母加密代码

l = ['','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
ls = input().split()
j = 0
for i in ls:
    ls[j] = int(i)
    print(l[ls[j]],end='')
    j += 1

result:

MOZHEYES

构造mozheyes.php即可拿到key

0x01:JS分析

页面让登陆。
查看源码。
这里写图片描述
输入moon点提交即可。或者直接打开那个php页面即可。

0x02:base64编解码

直接上代码:

#python3解决base64编解码问题
#base64不能直接对字符串进行处理,只能处理bytelikeobj。
#所以在base64编解码之前,我们要把字符串变成bytelikeobj
import base64
def str2bytelike(str1): # 将字符串编码为byte-likeboj
    bytelike = str1.encode(encoding='utf8')
    return bytelike
def bytelike2base_64(bytelike): # 将bytelikeobj的str编码为bytelikeobj的base64
    # 并将bytelikeobj的base64解码为正常的base64字符串
    base_64 = base64.b64encode(bytelike)
    return base_64.decode()
def base_642str(bytelike):#将bytelikeobj的base64解码为bytelikeobj的str,
    #并将bytelikeobj的str解码为正常的str
    str1 = base64.b64decode(bytelike)
    return str1.decode()

#使用方法:将s1改为待编码的字符串即可进行编码。 将s2改为待解码的base64串即可。

####测试数据####
s1 = 'faker'
s2 = 'ZmFrZXI='
b1 = str2bytelike(s1)#编码为bytelikeobj  下同
b2 = str2bytelike(s2)
base = bytelike2base_64(b1)#编码为base64字符串
st = base_642str(b2)#解码为base64字符串
print(base,st)

真正好用的在这儿:

import base64
def str2bytelike(str1):
    bytelike = str1.encode(encoding='utf8')
    return bytelike
def bytelike2base_64(bytelike):
    base_64 = base64.b64encode(bytelike)
    return base_64.decode()
def base_642str(bytelike):
    str1 = base64.b64decode(bytelike)
    return str1.decode()
tag = input('编码请输入1,解码请输入2。然后按回车键:')
if tag == '1':
    s = input('请输入字符串:')
    b = str2bytelike(s)
    base = bytelike2base_64(b)
    print(base)
else:
    s = input('请输入base64码:')
    b = str2bytelike(s)
    st = base_642str(b)
    print(st)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值