buuoj Crypto

最近准备刷buuoj  刷的部分是 pwn re 还有crypto  然后打算做一个项目 放到github  当成毕业设计,,,,,

md5

这个题目在md5解密网站解一下就出来了

二踢腿

这个题目。。。 就是偏移13的凯撒密码,, 直接解开就好

url解码

直接url 解码就好。。

一眼就解密

直接base64解密就好

摩丝密码

解密一下就好  http://www.zhongguosou.com/zonghe/moErSiCodeConverter.aspx

变异凯撒

这个普通解不出来

但是发现他们说了是 flag{} 格式

观察了一下 位数差的是 5 6 7

写个脚本就好

en_str='afZ_r9VYfScOeO_UL^RWUc'


flag=""
for i in range(0,len(en_str)):
	flag+=chr(ord(en_str[i])+i+5)

print(flag)

quoted-printable

这个quoted-printable 解码一下就好 

password

直接猜 最后是

flag{zs19900315}

zip伪加密 

伪加密 只需要改两个flags 位就可以

全部改成0即可

 rabbit 

rabbit 解密即可

rsa 

写脚本解密即可

import libnum
import gmpy2
import binascii
p=473398607161
q=4511491
e=17
phi=(p-1)*(q-1)
d=gmpy2.invert(e,phi)
print(d)

 

丢失的md5

直接python脚本跑一遍就出来了结果

篱笆墙的影子

13位的栏栅解密

Alice与Bob

简单的素数分解

在线分解网站 

http://factordb.com/

rsarsa

简单的rsa  

import libnum
import gmpy2
import binascii
p =  9648423029010515676590551740010426534945737639235739800643989352039852507298491399561035009163427050370107570733633350911691280297777160200625281665378483
q =  11874843837980297032092405848653656852760910154543380907650040190704283358909208578251063047732443992230647903887510065547947313543299303261986053486569407
e =  65537
c =  83208298995174604174773590298203639360540024871256126892889661345742403314929861939100492666605647316646576486526217457006376842280869728581726746401583705899941768214138742259689334840735633553053887641847651173776251820293087212885670180367406807406765923638973161375817392737747832762751690104423869019034

phi=(p-1)*(q-1)

d=gmpy2.invert(e,phi)
n=p*q
m=pow(c,d,n)
print(m)

 

传统知识+古典密码

实验吧的题目

根据表 

88 90 83 68 77 70 76 90 

然后经过2的栏栅 然后在解密

然后在凯撒解密、  看那个像就交一下试试 

发现 SHUANGYU  是正确的

sts="XMZFSLDZ"

for i in range(0,26):
	flag=""
	for j in sts:
		flag+=chr((ord(j)-ord('A')+i)%26+ord('A'))
	print(i,flag)



大帝的密码武器

这个题目其实很简单 就是看的题目有点迷

其实就是凯撒加密 

经过观察 发现了(13, 'SECURITY') 的英文有意义

直接把在加密一遍就可以

windows 系统密码

这个 就是系统的问题

一般来说  无论windows 还是linux 都是需要两个存密码的文件

第一个是真正的密码 

第二个就是md5

所以用md5解一下就好

rsa1

脚本解密一把梭

import gmpy2
import binascii

def decrypt(dp,dq,p,q,c):
    InvQ = gmpy2.invert(q,p)
    mp = pow(c,dp,p)
    mq = pow(c,dq,q)
    m=(((mp-mq)*InvQ)%p)*q+mq
    print (binascii.unhexlify(hex(m)[2:]))


p = 8637633767257008567099653486541091171320491509433615447539162437911244175885667806398411790524083553445158113502227745206205327690939504032994699902053229 
q = 12640674973996472769176047937170883420927050821480010581593137135372473880595613737337630629752577346147039284030082593490776630572584959954205336880228469 
dp = 6500795702216834621109042351193261530650043841056252930930949663358625016881832840728066026150264693076109354874099841380454881716097778307268116910582929 
dq = 783472263673553449019532580386470672380574033551303889137911760438881683674556098098256795673512201963002175438762767516968043599582527539160811120550041 
c = 24722305403887382073567316467649080662631552905960229399079107995602154418176056335800638887527614164073530437657085079676157350205351945222989351316076486573599576041978339872265925062764318536089007310270278526159678937431903862892400747915525118983959970607934142974736675784325993445942031372107342103852
decrypt(dp,dq,p,q,c)

凯撒?替换?呵呵!

这道题仿佛也在那做过,,,

小写 减去空格 网站是   https://quipqiup.com/ 

 

rsa2  

模版题

import gmpy2
import binascii
 
def getd(n,e,dp):
    for i in range(1,e):
        if (dp*e-1)%i == 0:
            if n%(((dp*e-1)/i)+1)==0:
                p=((dp*e-1)/i)+1
                q=n/(((dp*e-1)/i)+1)
                phi = (p-1)*(q-1)
                d = gmpy2.invert(e,phi)%phi
                return d
 
e = 65537
n = 248254007851526241177721526698901802985832766176221609612258877371620580060433101538328030305219918697643619814200930679612109885533801335348445023751670478437073055544724280684733298051599167660303645183146161497485358633681492129668802402065797789905550489547645118787266601929429724133167768465309665906113
dp = 905074498052346904643025132879518330691925174573054004621877253318682675055421970943552016695528560364834446303196939207056642927148093290374440210503657
c = 140423670976252696807533673586209400575664282100684119784203527124521188996403826597436883766041879067494280957410201958935737360380801845453829293997433414188838725751796261702622028587211560353362847191060306578510511380965162133472698713063592621028959167072781482562673683090590521214218071160287665180751

d=getd(n,e,dp)
m=pow(c,d,n)
print (binascii.unhexlify(hex(m)[2:]))

old-fashion

还是在线网站

https://quipqiup.com/

信息化时代的步伐

这个是一个大佬提醒了一句 才知道 电报码 https://www.qqxiuzi.cn/bianma/dianbao.php

 

 rsa3

共模攻击

import sys

sys.setrecursionlimit(1000000)
def egcd(a, b):
    if a == 0:
      return (b, 0, 1)
    else:
      g, y, x = egcd(b % a, a)
      return (g, x - (b // a) * y, y)
def modinv(a, m):
    g, x, y = egcd(a, m)
    if g != 1:
      raise Exception('modular inverse does not exist')
    else:
      return x % m

c1=22322035275663237041646893770451933509324701913484303338076210603542612758956262869640822486470121149424485571361007421293675516338822195280313794991136048140918842471219840263536338886250492682739436410013436651161720725855484866690084788721349555662019879081501113222996123305533009325964377798892703161521852805956811219563883312896330156298621674684353919547558127920925706842808914762199011054955816534977675267395009575347820387073483928425066536361482774892370969520740304287456555508933372782327506569010772537497541764311429052216291198932092617792645253901478910801592878203564861118912045464959832566051361
n=22708078815885011462462049064339185898712439277226831073457888403129378547350292420267016551819052430779004755846649044001024141485283286483130702616057274698473611149508798869706347501931583117632710700787228016480127677393649929530416598686027354216422565934459015161927613607902831542857977859612596282353679327773303727004407262197231586324599181983572622404590354084541788062262164510140605868122410388090174420147752408554129789760902300898046273909007852818474030770699647647363015102118956737673941354217692696044969695308506436573142565573487583507037356944848039864382339216266670673567488871508925311154801
e1=11187289
c2=18702010045187015556548691642394982835669262147230212731309938675226458555210425972429418449273410535387985931036711854265623905066805665751803269106880746769003478900791099590239513925449748814075904017471585572848473556490565450062664706449128415834787961947266259789785962922238701134079720414228414066193071495304612341052987455615930023536823801499269773357186087452747500840640419365011554421183037505653461286732740983702740822671148045619497667184586123657285604061875653909567822328914065337797733444640351518775487649819978262363617265797982843179630888729407238496650987720428708217115257989007867331698397
e2=9647291

s = egcd(e1, e2)
s1 = s[1]
s2 = s[2]

if s1<0:
   s1 = - s1
   c1 = modinv(c1, n)
elif s2<0:
   s2 = - s2
   c2 = modinv(c2, n)
m=(pow(c1,s1,n)*pow(c2,s2,n)) % n
print(bytes.fromhex(str(hex(m)[2:])))

世上无难事

还是用那个网站 把大写字母改成小写就可以了

获得权限第一步

直接md5解密就行

萌萌哒的八戒

猪圈密码。 直接对照一下就ok

异性相吸。。

异或就好 

 

 

 

参考链接

https://xz.aliyun.com/t/6459#toc-43


版权声明:本文为qq_41071646原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。