CTF学习

基础篇

小白菜的ctf秀~

一、练习题

疯狂抄作业过程

  1. crypto2&3
    控制台输入console.log(待破解密码)
    如遇到乱码,保存为txt格式打开。
  2. crypto4&5
    RSA加密
    解密方式1:python代码
    题目:p=447685307 q=2037 e=17
    解答:
import gmpy2
p = 447685307
q = 2037
e = 17
phi = (p-1)*(q-1)
#求一个数模x的逆元y
d = gmpy2.invert(e, phi)
print(d)

题目:p=447685307 q=2037 e=17 c=704796792
解答:

# 求一个整数的x次幂模y取余(主要用于RSA中)
p=447685307
q=2037
e=17
c=704796792
phi = (p-1)*(q-1)
d = gmpy2.invert(e,phi)
m = gmpy2.powmod(c,d,p*q)

解密方式2:RSA-Tools工具
3. crypto6
U2FsdGVkX1开头的可能是rabbit,AES,DES加密
https://tool.acy.moe/rabbitencrypt/ (需要翻墙)
4. crypto7&8:okk及brainfuck解码
https://www.splitbrain.org/services/ook
5. crypto9
6. crypto10: Quoted-printable编码
http://www.mxcz.net/tools/QuotedPrintable.aspx
7. crypto11: md5解码
https://www.cmd5.com/
8. crypto0-1:凯撒密码
每个英文单词都用在其后面第 N 个单词代替。其中,N 就是密钥。
代码:

s = input()
t = ''
for c in s:
   if 'a' <= c <= 'z':
       t += chr( ord('a') + ((ord(c)-ord('a')) - 1 )%26 )
   elif 'A' <= c <= 'Z':
       t += chr( ord('A') + ((ord(c)-ord('A')) - 1 )%26 )
   else:
       t += c   #t+=是实现了两个字符相加,eg:输入abc第一次循环t = d,第二次循环t = de,第三次循环t = def
print(t)
  1. crypto12
def atbash(s):
   """埃特巴什码 加密==解密"""
   codes = {'a': 'z', 'b': 'y', 'c': 'x', 'd': 'w', 'e': 'v', 'f': 'u', 'g': 't', 'h': 's', 'i': 'r', 'j': 'q', 'k': 'p', 'l': 'o', 'm': 'n', 'n': 'm', 'o': 'l', 'p': 'k', 'q': 'j', 'r': 'i', 's': 'h', 't': 'g', 'u': 'f', 'v': 'e', 'w': 'd', 'x': 'c', 'y': 'b', 'z': 'a', 'A': 'Z', 'B': 'Y', 'C': 'X', 'D': 'W', 'E': 'V', 'F': 'U', 'G': 'T', 'H': 'S', 'I': 'R', 'J': 'Q', 'K': 'P', 'L': 'O', 'M': 'N', 'N': 'M', 'O': 'L', 'P': 'K', 'Q': 'J', 'R': 'I', 'S': 'H', 'T': 'G', 'U': 'F', 'V': 'E', 'W': 'D', 'X': 'C', 'Y': 'B', 'Z': 'A'}
   ret = ""
   for i in s:
   	if i in codes:
   		ret += codes[i]
   	else:
   		ret += i
   print(ret)
   return ret
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值