CTFshow-Crypto(1-5)
1密码学签到
自己倒序
在线网站倒序
python脚本
a = '}wohs.ftc{galf'
print(a[::-1], end="")#end=""表示每一次print后都不换行
2crypto2
下载附件并解压
JSFuck编码
查资料是这个编码
30余种加密编码类型的密文特征分析(建议收藏)-腾讯云开发者社区-腾讯云 (tencent.com)
特征:只用! + ( ) [ ]
这六个字符就能完成对任意字符串的编码。也可在F12中解密执行
随波逐流解密
在线网站解密
CTF在线工具-在线JSfuck加密|在线JSfuck解密|JSfuck|JSfuck原理|JSfuck算法 (hiencode.com)
浏览器开发者模式控制台解密
3crypto3
颜文字
30余种加密编码类型的密文特征分析(建议收藏)-腾讯云开发者社区-腾讯云 (tencent.com)
特征:一堆颜文字构成的js代码,在F12中可直接解密执行
在线网站解密
AAEncode加密/解密 - 一个工具箱 - 好用的在线工具都在这里! (atoolbox.net)
浏览器控制台解密
4crypto4
RSA
很明显是简单的RSA算法
p=447685307 q=2037 e=17,求d
python脚本
import gmpy2
e = 17
p = 447685307
q = 2037
phi = (p-1)*(q-1)#计算φ(n) = (p - 1) * (q - 1)
d = gmpy2.invert(e,phi) #计算e关于模φ(n)的乘法逆元d
print(d)
gmpy2.invert()
模逆运算:a = gmpy2.invert(b,c)#对b,求a,使得a*b=1(mod c)
工具RSATool
5crypto5
RSA
一道简单RSA
p=447685307 q=2037 e=17 c=704796792,求m
工具RSATool+Big Integer Calculator
用RSATool求出n和d
用Big Integer Calculator求出m
m=(c^d)mod n=904332399012
python脚本
import gmpy2
e = 17
p = 447685307
q = 2037
c = 704796792
n = p*q
phi = (p-1)*(q-1)
d = gmpy2.invert(e,phi)
m = pow(c,d,n)
print(m)
pow()
pow(x, y, z) //x的y次方再对z取模