CTFshow crypto wp

今天开始我的ctf crypto生涯了,之后会陆续从各大平台找一些密码的题目来做,先从萌新杯入手!

说明一下,懒得调整字体啥的~~

签到题:

佬说了,Ao(mg就是flag用base85编码之后的表示形式,在这里可以从网站上直接base85解码,也可用python中的base64库解码,但解码的时候遇到一个有趣的问题

import base64
a="Ao(mgHX^E)AN2PSBOu3qI0o"
a=base64.b85decode(a)
print(a)
#b' \xf9,96"\xaa\x96\x1f\xf4\xf7\x10# \xc7~8\x06'

可以看到用base85解码得到的不是flag,这是怎么回事?

我又试了一下flag用这个base85编码之后得到的是 b'W^7?+',也不是Ao(mg哇,百思不得其解的我找到大佬问了一下,得知base85有好多编码表??

在python的base64库里还有一种方式,是a85.encode()!

我特意上网搜了一下a85和b85的区别--它们的区别在于用于编码的字符映射等细节

大体意思是,在a85encode中,映射ascii顺序中的所有字符,bsae85里用的字符集顺序和种类都不同吧,网上大多推荐使用a85encode,那我们就用a85再写一次!

import base64
a="Ao(mgHX^E)AN2PSBOu3qI0o"
a=base64.a85decode(a)
print(a)

得到flag

抱我:

给的是一个py文件,打开如下:

import random
cstring = 'abcdefghijklmnopqrstuvwxyz{}_0123456789'
key = 'flag{********}'
length = 300

def encode():
    res = ''
    for i in range(1, length):
        c = random.randint(0, 36)
        res += cstring[c]
        for n in range(10):
            c = random.randint(0, len(key) - 1)
            res += key[c]
    return res

#qdfl33{6{6gs3afa6{3}agf{}aagdf}6fl36d{dfl{6ay6gafddfg}{j3f}}6la{3}bfdf3}gla}65}lg6g6dflf0{dfgd3fdfgc{g6a}a3{6}mfa{}f}f}}}3363}}f6a6a7g{a}g66{d3xgfffg}a}3}_{lad}a33ga5fd33}{
  {dl}{}f{3da}g}3egfal{a3l}3f33}dfdda{3sa{d6g{ff}6vgl33d6g333h{gd{
  {lg6ldg{ad{3333a6oalf6a{33{de3{fa}ggl{abfd}6}6}}l33fa}f{
  {3{3fla}a6}af}{amg}{
  {d}}a6gallfg36{g3dh{
  {
  {a{lfg3{sll6g6gfaggid6d{3afl}3rff3gfad3d}1dlllff6}6}h3g66gla336b{6d3gf}f{30d63l}3dfl6a3llfgld3{}qg}gf}dg{6l}3gal}agdl6{lg{g}ddfaaealf{f3llgge3ad3{3adf{c}fllf6f}3at{aag}a66d3}ad{dfg{}dlz6gld}6{3flxgf{3g3ald}3g}g63f6ggf3}gfd}f3ga3efllf6}363fu6
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Paintrain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值