实验吧-密码学-凯撒和某某加密

某某加密也是试出来的,这个加密其实和栅栏加密类似,但不过也没啥关系,就是自己根据格式拼出来的。

现在解密的工具很多,也有软件,也有在线的,可惜这个题用这两个都做不了。

为什么呢,这些工具对于凯撒一般都是26个字母循环移位,符号不处理,ASCII码超过Z的也不处理,正好这个题就是超越这些限制的移位,这就需要脚本了。

首先,用一个脚本,改脚本可在33-126的ASCII码范围内解码。

代码转自:https://blog.csdn.net/dongyanwen6036/article/details/76447628

#实现33-126ASCII能打印的字符循环平移
#和通常凯撒加密不同注意
def change(c,i):
	num=ord(c)
	if(num>=33 and num<=126):
		num=33+(num+i-33)%(94)#126-33=93
	return chr(num)
 
	
def kaisa_jiAmi(string,i):
	string_new=''
	for s in string:
		string_new+=change(s,i)
	print(string_new)
	return string_new
 
#本题有种暴力解密感觉
def kaisa_jiEmi(string):
	for i in range(0,94):
		print('第'+str(i+1)+'种可能:',end='   ')
		#区别在于 string 是该对象原本就是字符串类型, 而 str()则是将该对象转换成字符串类型。
		kaisa_jiAmi(string,i)
		
#你要知道input输入的数据类型都是string	
def main():
	print('请输入操作,注意不是平常26种:')
	choice=input('1:恺撒加密,2:凯撒穷举解密.请输入1或2:')
	if choice=='1':
		string=input('请输入需要加密字符串: ')
		num=int(input('请输入需要加密的KEY: '))
		kaisa_jiAmi(string,num)
	elif choice=='2':
		string=input('请输入需要解密字符串: ')
		kaisa_jiEmi(string)
	else:
		print('输入错误,请重试')
		main()
		
if __name__=='__main__':
	main()

下面给出结果:

第1种可能:   aZZg/x\ZbavpZiEZp+n)o+
第2种可能:   b[[h0y][cbwq[jF[q,o*p,
第3种可能:   c\\i1z^\dcxr\kG\r-p+q-
第4种可能:   d]]j2{_]edys]lH]s.q,r.
第5种可能:   e^^k3|`^fezt^mI^t/r-s/
第6种可能:   f__l4}a_gf{u_nJ_u0s.t0
第7种可能:   g``m5~b`hg|v`oK`v1t/u1
第8种可能:   haan6!caih}wapLaw2u0v2
第9种可能:   ibbo7"dbji~xbqMbx3v1w3
第10种可能:   jccp8#eckj!ycrNcy4w2x4
第11种可能:   kddq9$fdlk"zdsOdz5x3y5
第12种可能:   leer:%geml#{etPe{6y4z6
第13种可能:   mffs;&hfnm$|fuQf|7z5{7
第14种可能:   nggt<'igon%}gvRg}8{6|8
第15种可能:   ohhu=(jhpo&~hwSh~9|7}9
第16种可能:   piiv>)kiqp'!ixTi!:}8~:
第17种可能:   qjjw?*ljrq("jyUj";~9!;
第18种可能:   rkkx@+mksr)#kzVk# 第19种可能:   sllyA,nlts*$l{Wl$=";#=
第20种可能:   tmmzB-omut+%m|Xm%>#<$>
第21种可能:   unn{C.pnvu,&n}Yn&?$=%?
第22种可能:   voo|D/qowv-'o~Zo'@%>&@
第23种可能:   wpp}E0rpxw.(p![p(A&?'A
第24种可能:   xqq~F1sqyx/)q"\q)B'@(B
第25种可能:   yrr!G2trzy0*r#]r*C(A)C
第26种可能:   zss"H3us{z1+s$^s+D)B*D
第27种可能:   {tt#I4vt|{2,t%_t,E*C+E
第28种可能:   |uu$J5wu}|3-u&`u-F+D,F
第29种可能:   }vv%K6xv~}4.v'av.G,E-G
第30种可能:   ~ww&L7yw!~5/w(bw/H-F.H
第31种可能:   !xx'M8zx"!60x)cx0I.G/I
第32种可能:   "yy(N9{y#"71y*dy1J/H0J
第33种可能:   #zz)O:|z$#82z+ez2K0I1K
第34种可能:   ${{*P;}{%$93{,f{3L1J2L
第35种可能:   %||+Q<~|&%:4|-g|4M2K3M
第36种可能:   &}},R=!}'&;5}.h}5N3L4N
第37种可能:   '~~-S>"~('<6~/i~6O4M5O
第38种可能:   (!!.T?#!)(=7!0j!7P5N6P
第39种可能:   )""/U@$"*)>8"1k"8Q6O7Q
第40种可能:   *##0VA%#+*?9#2l#9R7P8R
第41种可能:   +$$1WB&$,+@:$3m$:S8Q9S
第42种可能:   ,%%2XC'%-,A;%4n%;T9R:T
第43种可能:   -&&3YD(&.-B<&5o& 第44种可能:   .''4ZE)'/.C='6p'=V;T 第45种可能:   /((5[F*(0/D>(7q(>W 第46种可能:   0))6\G+)10E?)8r)?X=V>X
第47种可能:   1**7]H,*21F@*9s*@Y>W?Y
第48种可能:   2++8^I-+32GA+:t+AZ?X@Z
第49种可能:   3,,9_J.,43HB,;u,B[@YA[
第50种可能:   4--:`K/-54IC- 第51种可能:   5..;aL0.65JD.=w.D]B[C]
第52种可能:   6//x/E^C\D^
第53种可能:   700=cN2087LF0?y0F_D]E_
第54种可能:   811>dO3198MG1@z1G`E^F`
第55种可能:   922?eP42:9NH2A{2HaF_Ga
第56种可能:   :33@fQ53;:OI3B|3IbG`Hb
第57种可能:   ;44AgR64<;PJ4C}4JcHaIc
第58种可能:   <55BhS75= 第59种可能:   =66CiT86>=RL6E!6LeJcKe
第60种可能:   >77DjU97?>SM7F"7MfKdLf
第61种可能:   ?88EkV:8@?TN8G#8NgLeMg
第62种可能:   @99FlW;9A@UO9H$9OhMfNh
第63种可能:   A::GmX<:BAVP:I%:PiNgOi
第64种可能:   B;;HnY=;CBWQ;J&;QjOhPj
第65种可能:   C< 第66种可能:   D==Jp[?=EDYS=L(=SlQjRl
第67种可能:   E>>Kq\@>FEZT>M)>TmRkSm
第68种可能:   F??Lr]A?GF[U?N*?UnSlTn
第69种可能:   G@@Ms^B@HG\V@O+@VoTmUo
第70种可能:   HAANt_CAIH]WAP,AWpUnVp
第71种可能:   IBBOu`DBJI^XBQ-BXqVoWq
第72种可能:   JCCPvaECKJ_YCR.CYrWpXr
第73种可能:   KDDQwbFDLK`ZDS/DZsXqYs
第74种可能:   LEERxcGEMLa[ET0E[tYrZt
第75种可能:   MFFSydHFNMb\FU1F\uZs[u
第76种可能:   NGGTzeIGONc]GV2G]v[t\v
第77种可能:   OHHU{fJHPOd^HW3H^w\u]w
第78种可能:   PIIV|gKIQPe_IX4I_x]v^x
第79种可能:   QJJW}hLJRQf`JY5J`y^w_y
第80种可能:   RKKX~iMKSRgaKZ6Kaz_x`z
第81种可能:   SLLY!jNLTShbL[7Lb{`ya{
第82种可能:   TMMZ"kOMUTicM\8Mc|azb|
第83种可能:   UNN[#lPNVUjdN]9Nd}b{c}
第84种可能:   VOO\$mQOWVkeO^:Oe~c|d~
第85种可能:   WPP]%nRPXWlfP_;Pf!d}e!
第86种可能:   XQQ^&oSQYXmgQ` 第87种可能:   YRR_'pTRZYnhRa=Rh#f!g#
第88种可能:   ZSS`(qUS[ZoiSb>Si$g"h$
第89种可能:   [TTa)rVT\[pjTc?Tj%h#i%
第90种可能:   \UUb*sWU]\qkUd@Uk&i$j&
第91种可能:   ]VVc+tXV^]rlVeAVl'j%k'
第92种可能:   ^WWd,uYW_^smWfBWm(k&l(
第93种可能:   _XXe-vZX`_tnXgCXn)l'm)
第94种可能:   `YYf.w[Ya`uoYhDYo*m(n*

答案在第6种可能: f__l4}a_gf{u_nJ_u0s.t0

试着栅栏解码:

第1栏:f_4ag{_Just_l}_fun_0.0
第2栏:fu___nlJ4_}ua0_sg.ft{0

貌似没有直接出答案,根据格式flag{}和英文单词,拼出flag:flag{_Just_4_fun_0.0_}

 

你可能感兴趣的:(实验吧密码学)