1.根据楼主给出的明文密文进行对照,可知加密后的长度与明文去掉空格的长度是相等的.也就是说加密时不考虑空格.
2.给出的明文密文对照表如下:
a t,s,e
b s,r,
c r,c,
d b,
e p,a,
f z,
g n,m,
h l,
i l,w,k
j
k j,u
l t,i,h
m h,
n r,f,g
o f,e,
p e,
q
r n,
s b,m,
t z,a,l
u z,y,
v
w w,
x
y v,u
z
对上表进行分析,可得出如下完整的字母对照表
字母 1 2 3
a s, t, e
b r, s, d
c q, r, c
d p, q, b
e o, p, a
f n, o, z
g m, n, y
h l, m, x
i k, l, w
j j, k, v
k i, j, u
l h, i, t
m g, h, s
n f, g, r
o e, f, q
p d, e, p
q c, d, o
r b, c, n
s a, b, m
t z, a, l
u y, z, k
v x, y, j
w w, x, i
x v, w, h
y u, v, g
z t, u, f
可知,某个字母的密文有三种可能
一种是从s开始的降序排序(列1),一种是以t开始的降序排列(列2),一种是以e开始的降序排列(列3)
且明文密文是互相对照的,例如 字如"a"对应"s,t,e"这三个字母,s为第一列,t为第二列,e为第三列,那么再看这三个字母的对照表
1 2 3
a s,t,e
s a,b,m a为第一列
t z,a,l a为第二列
e o,p,a a为第三列
也就是说明文密文是按照同样的方式互相转换的.
具体到一句中的某个字母,应该用哪个排列中的密文字母对照呢.分析
明文 a n t i y l a b s
密文 t r z l v t s s b
密文字母列号 2 3 1 2 2 3 1 2 2
明文 A f a l l i n t o t h e p i t a g a i n i n y o u r w i t
密文 t z s i i w f a f l l p e w z t n e k g l r u f z n w l a
密文字母列号 2 3 1 2 2 3 1 2 2 3 1 2 2 3 1 2 2 3 12 23 1223 122
明文 B e h i n d b a d l u c k c o m e s g o o d l u c k
密文 s a l l g b r t q t y r j c e h p m m f f b h z r u
密文字母列号 2 3 1 2 2 3 1 2 23 1 2 2 3 1 2 2 3 1 2 2 3 1 2 3 1
可看出,每一句是按照"2312"这个列号顺序进行排列的.
看看问题中的密文,我们按照2312这个列的顺序将字母找出来
密文 g q z l h a h l j a z m p p b p b a f a
明文字母列号 2 3 12 2 3 1 2 2 3 1 2 2 3 1 2 2 3 1 2
N o t i m e l i k e t h e p r e s e n t
答案就是 No time like the present (机不可失,时不再来)
再看看楼主对二楼的回答
a w g p x w h i a a h i
2 3 1 2 2 3 1 2 2 3 1 2
t i me w i l l t e l l
time will tell (时间证明一切)
我的方法可能不符合楼主的初衷,楼主大人的意思应该是通过算法来解题,我只能通过这种最笨的方法来解题了.因为结束日期快到了,算是抛砖引玉捧个场.大家继续努力吧! |