凯撒和某某加密实验吧

#实现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()

	
	
	
http://www.shiyanbar.com/ctf/1822
凯撒和某某加密
aZZg/x\ZbavpZiEZp+n)o+




解:
1.恺撒密码:明文所有字母都在字母表上向后(或向前)
按照一个固定数目进行偏移后被替换成密文。
通常凯撒列出26种(其实包括自身不变KEY=0)ascii表的字母凯撒移动
分析:aZZg/x\ZbavpZiEZp+n)o+这里不全是字母所以笔者认为这里恺撒密码
是33-126Ascii可打印的整个ascii表的凯撒移动,好了,看程序结果吧。
第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*


2.栅栏密码特点就是隔几个字母能读顺成一个单词,一般译为分2个一组
具体情况具体分析,就像此题一处特殊单独三个一组。观察敏感得知,
反正有奇葩字符肯定不是,看有没有{,},CTF,flag这种字符得知:

f__l4}a_gf{u_nJ_u0s.t0进行解密:


f__    =>f _  _
l4}     =>l 4   }
a_     =>a _
gf      =>g f
{u      =>{ u 
_n     =>_ n
J_     =>J _
u0     =>u 0
s.      =>s .
t0      =>t 0

结果就是flag{_Just_4_fun_0.0_}


凯撒和某某加密实验吧_第1张图片

凯撒和某某加密实验吧_第2张图片


你可能感兴趣的:(凯撒和某某加密实验吧)