西普学院Crypto之凯撒是罗马共和国杰出的军事统帅

看题目大概可以知道是凯撒加密

密文:MGAKUZKRWZWGAWCP

我写了个程序遍历所有 有可能是答案的结果,代码如下:

def echo(n):
	st=""
	b=True
	for i in s:
		if ord(i)+n in range(256):
			st+=chr(ord(i)+n)
			b=True
		else:
			b=False
	if b:	
		print st

s = raw_input()
for i in range(-500,500):
	echo(i)

  代码写得非常粗糙,没做处理什么的。不过能用就行咯

  运行结果如下:

,& *49*1696& 6"/
-'!+5:+27:7'!7#0
.(",6;,38;8("8$1
/)#-7<-49<9)#9%2
0*$.8=.5:=:*$:&3
1+%/9>/6;>;+%;'4
2,&0:?07<?<,&<(5
3-'1;@18=@=-'=)6
4.(2<A29>A>.(>*7
5/)3=B3:?B?/)?+8
60*4>C4;@C@0*@,9
71+5?D5<ADA1+A-:
82,6@E6=BEB2,B.;
93-7AF7>CFC3-C/<
:4.8BG8?DGD4.D0=
;5/9CH9@EHE5/E1>
<60:DI:AFIF60F2?
=71;EJ;BGJG71G3@
>82<FK<CHKH82H4A
?93=GL=DILI93I5B
@:4>HM>EJMJ:4J6C
A;5?IN?FKNK;5K7D
B<6@JO@GLOL<6L8E
C=7AKPAHMPM=7M9F
D>8BLQBINQN>8N:G
E?9CMRCJORO?9O;H
F@:DNSDKPSP@:P<I
GA;EOTELQTQA;Q=J
HB<FPUFMRURB<R>K
IC=GQVGNSVSC=S?L
JD>HRWHOTWTD>T@M
KE?ISXIPUXUE?UAN
LF@JTYJQVYVF@VBO
MGAKUZKRWZWGAWCP
NHBLV[LSX[XHBXDQ
OICMWMTYYICYER
PJDNX]NUZ]ZJDZFS
QKEOY^OV[^[KE[GT
RLFPZ_PW\_LFHU
SMGQ[`QX]`]MG]IV
TNHRaRY^a^NH^JW
UOIS]bSZ_b_OI_KX
VPJT^cT[`c`PJ`LY
WQKU_dUadaQKaMZ
XRLV`eV]bebRLbN[
YSMWafW^cfcSMcO
ZTNXbgX_dgdTNdP]
[UOYchY`eheUOeQ^
VPZdiZafifVPfR_
]WQ[ej[bgjgWQgS`
^XRfkchkhXRhTa
_YS]gl]diliYSiUb
`ZT^hm^ejmjZTjVc
a[U_in_fknk[UkWd
bV`jo`glolVlXe
c]Wakpahmpm]WmYf
d^Xblqbinqn^XnZg
e_Ycmrcjoro_Yo[h
f`Zdnsdkpsp`Zpi
ga[eotelqtqa[q]j
hbfpufmrurb
^k
ic]gqvgnsvsc]s_l
jd^hrwhotwtd^t`m
ke_isxipuxue_uan
lf`jtyjqvyvf`vbo
mgakuzkrwzwgawcp
nhblv{lsx{xhbxdq
oicmw|mty|yicyer
pjdnx}nuz}zjdzfs
qkeoy~ov{~{ke{gt

 一般这种还是搜关键字吧,于是我在上面的结果中搜索KEY  发现搜索不出来 搜索KE  出来了“KE?ISXIPUXUE?UAN”这个字符串

 大概可以看出这并不是一个无意义的字符串,通过推理 发现"?"可以填充为"Y",最终结果就是:KE?ISXIPUXUE?UAN

去掉KEYIS剩下的就是key了

提交XIPUXUEYUAN发现不通过,换成小写 通过!

  

原文地址:https://www.cnblogs.com/13ck/p/4550594.html