16.某種字符加密方法描述如下:
①將明文字符串s中的每個字母字符根據(jù)它所在的位置往后移動相應(yīng)的位置,并轉(zhuǎn)化為對應(yīng)的小寫字母(例如:大寫字母A往后移動5位變成F,轉(zhuǎn)化成小寫字母得到f;小寫字母y往后移動8位得到g,轉(zhuǎn)化成大寫字母得到G),非字母字符不處理,得到新串ss。
②將①得到的新串ss從中切割成兩部分,再將后面一段字母依次逐個插入前一段字符后邊,組成一段密文。
例如“Good.Luck!”生成密文過程如下:
①明文字符串s移位和大小寫轉(zhuǎn)換過程:
下標(biāo)位置 |
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 |
! |
②將①得到的密文ss切割成兩部分:假定n為明文字符串的長度,則有:
n為偶數(shù):[1 n\2]、[n\2+1 n];
n為奇數(shù):[1 n\2、n\2+1]、[n\2+2 n]。
例如將上述①得到的字符串中6~10位置的字符依次逐個連接在1~5字符后面,生成密文如圖a所示:
(1)已知采用上述加密方法得到的密文是“iTCDS!”,則明文為
。
(2)根據(jù)上述加密算法,小高設(shè)計了一個字符串加密程序,運行界面如圖b所示,請在橫線處填入合適的代碼。
Private Sub Command1_Click ( ?。?br />Dim s As String,ss As String,mw As String,C As String
Dim n As Integer,i As Integer,j As Integer
s=Text1.Text:n=Len(s)
For i=1 To n
C=Mid(s,i,1)
If iszm(c)Then
ss=
'①
Else
ss=ss+C
End If
Next i
i=1:j=n\2+1
If n Mod 2=1 Then j=j+1
Do While i<=n\2
mw=
'②
i=i+1:j=j+1
Loop
If n Mod 2=1 Then mw=
'③
Text2.Text=mw
End Sub
Function iszm(c As String)As Boolean
iszm=False
If c>=“a“And c<=“z“Or c>=“A“And c<=“Z“Then iszm=True
End Function
Function movec(x As String,w As Integer)As
String
If x>=“a“And c<=“z“Then
movec=Chr((Asc(x)-97+w)Mod 26+65)
Else
movec=
'④
End If
End Function