#实现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_}