首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ctf中一些简单的加解密

ctf中一些最常见的加解密。用Python来一一理解。

————

首先是base64全家桶。相信大家应该遇到过这种题,需要一连串的贝斯解码。用Python就能很方便的解决这个问题:

首先import base64

然后直接一行代码加密解密。

key=base64.b64decode("")

key=base64.b32decode("")

key=base64.b16decode("")

所以你需要贝斯64、32、16连环解码时,一行代码就能搞定:

key=base64.b64decode(base64.b32decode(base64.b16decode("")))

附加说明:md5、sha1加密格式:

a=hashlib.md5()

a.update(name.encode("utf-8"))

a.hexdigest()

a=hashlib.sha1()

a.update(name.encode("utf-8"))

a.hexdigest()

————

栅栏密码。 这个栅字,哎,中华文化博大精深。再深究吧。

先贴源码吧。是网上流传的py2的一个版本。

e="f5-lf5aa9gc9{-8648cbfb4f979c-c2a851d6e5-c}"

elen = len(e)

field=[]

for i in range(2,elen):

if(elen%i==0):

field.append(i)

for f in field:

b = int(elen / f)

result =

for i in range(elen):

a = i % b;

result.update()

d = ''

for i in range(b):

d = d + result[i]

print (str(f)+'栏时,解密结果为: '+d)

还是比较直观的。

————

字符串翻转。 看了i春秋上的c语言实现的版本。然后我用Python试了试:

a="}~144_0t_em0c14w{galf"

b=""

for i in range(len(a)):

b=b+a[len(a)-1:]

a=a[:len(a)-1]

print(b)

最后用Python的切片

print(a[::-1])

。。。是不是想笑。的确啊,py大法好,早用早超生。

————

凯撒解密。(这个凯撒这个名字,是我年少轻狂时写的一部小说里面的主角。当时我还不知道这个加密方法的。有点猿粪蛤。)

def kaisa(lstr):

returnStr = ''

for p in range(127):

str1 = ''

for i in lstr:

temp = chr((ord(i)+p)%127)

if 32

str1 = str1 + temp

feel = 1

else:

feel = 0

break

if feel == 1:

returnStr = returnStr + str1 + '\n'

return returnStr

print(kaisa("btgbteg"))

这个解密方法好像是米斯特安全团队那个框架里面的。

还有超多py的解密脚本在里面,但那个框架我是真用不来。太高端。

————

另外还有1337编码,rc4,当铺密码等等一些。

来不及写了。

最近受伤了难受

和玻璃过不去的我

永远 挂外科

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190102G1H98B00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券