某種字符加密方法描述如下:
①將明文字符串s中的每個字母字符根據(jù)它所在該字符串的位置,往后移動相應(yīng)的位置,并轉(zhuǎn)化為對應(yīng)的小寫或大寫字母(例如:大寫字母A往后移動5位變成F,轉(zhuǎn)化成小寫字母得到f;小寫字母y往后移動8位得到g,轉(zhuǎn)化成大寫字母得到G),非字母字符不處理,得到新串ss。
②將①得到的新串ss平均切割成兩部分,若ss的長度n為奇數(shù),則第一部分長度為n//2+1,第二部分長度為n//2。再將后面一段字母依次逐個插入前一段字符后邊,組成一段密文。
例如“Good.Luck!”生成密文過程如下:
下標位置 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
原始字符 |
G |
o |
o |
d |
. |
L |
u |
c |
k |
! |
向后移動i位 |
H |
q |
r |
h |
. |
R |
b |
k |
t |
! |
大小寫轉(zhuǎn)換 |
h |
Q |
R |
H |
. |
r |
B |
K |
T |
! |
①說明文字符串s移位和大小寫轉(zhuǎn)換過程;
②將①得到的密文ss平均切割成兩部分。
例如將上述①得到的字符串中6~10位置的字符依次逐個連接在1~5字符后面,生成密文如圖所示:
(1)若有一個待加密字符為“Python!”,根據(jù)上述加密規(guī)則,加密后的密文是
qTATW!L
qTATW!L
。
(2)已知采用上述加密方法得到的密文是“iTCDS!”,反推出明文是
Happy!
Happy!
(寫出過程,按步驟給分)。
下標位置 |
1 |
2 |
3 |
4 |
5 |
6 |
密文字符 |
i |
T |
C |
D |
S |
! |
位置交換 |
i i
|
C C
|
S S
|
T T
|
D D
|
! !
|
大小寫轉(zhuǎn)換 |
I I
|
c c
|
s s
|
t t
|
d d
|
! !
|
向前移動i位 |
H H
|
a a
|
p p
|
p p
|
y y
|
! !
|