我的密码学是真的烂,,,唉~只能做一些简单题(数学太差
我会做的
crypto入门指北
感谢shallow大佬送的学习资料~~
Stream
这个题目有点毒瘤,,,先贴加密脚本
import base64
flag = "XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
xor = ?
print(len(xor))
print(base64.b64encode(("".join([chr(ord(i)^ord(xor)) for i in list(flag)])).encode("ASCII")))
#1
#b'Og9hNAFrCjU9aQ4+C2psLzxpYRE6azw+FmphPgk2EjQBDyw+DWsKIQIPHiwAaBYoOx8wNBU2aGU='
一看xor就一位,爆破!!!
import base64
f = open("out2.txt","w",encoding="utf-8")
flag = b'Og9hNAFrCjU9aQ4+C2psLzxpYRE6azw+FmphPgk2EjQBDyw+DWsKIQIPHiwAaBYoOx8wNBU2aGU='
flag = base64.b64decode(flag)
f.write("\n————————————————开始爆破————————————————\n\n\n")
for i in range(0,128):
f.write(str(i))
ans=""
for j in flag:
ans = ans + (chr(i^j))
f.write(ans)
f.write("\n————————————————————分割线——————————————————————\n\n")
但为什么我觉得这个题目有点毒瘤,,,因为它解出来不是flag,而是flag的base64……最早真的没有想到这一点
moectf{U_Kn0w_How_7o_Break_Stream_Ciphe2}
easycrypto
直接暴力搞:
from FLAG import flag
def enc(plain):
cipher = []
for i in plain:
m = ord(i)
cipher.append(5 * m ** 2 + 6 * m - 8)
return cipher
print(enc(flag))
#[60051, 62263, 51603, 49591, 67968, 52624, 76375, 38359, 51603, 58960, 49591, 62263, 60051, 51603, 45687, 67968, 62263, 45687, 22839, 65656, 73923, 63384, 67968, 62263, 78867]
cnt=1
flag_en=[60051, 62263, 51603, 49591, 67968, 52624, 76375, 38359, 51603, 58960, 49591, 62263, 60051, 51603, 45687, 67968, 62263, 45687, 22839, 65656, 73923, 63384, 67968, 62263, 78867]
for i in flag_en:
cnt+=1
for j in range(48,130):
if(5*j**2+6*j-8==i):
print(chr(j),end='')
#moectf{Welcome_to_Crypto}
rsa_begin
毕竟是第一题,工具直接搞就完了,贴一篇工具教程,直接一把梭。
moectf{Ull_f1nd_RSA_1s_1nte2est1ng}
我没做出来的
静等官方wp