密文VB问题求助,
将一段只含大小写字母与空格,不含其它字符的字符串加密,加密算法描述如下1.将明文中的字母E替换为A,F替换为B,G替换为C,… A替换为W,B替换为X,C替换为Y,…,小写字符的替换方法同理。
如:明文:I Love China 加密为:E Hkra Ydejw
2.将加密后的英文字母,按顺序依次放入每个字符串段落中,第1个加密字母E放在第1个段落,第2个字母H放在第2个段落,依次类推(如下图),段落间用逗号分隔并以逗号结尾。当遇到空格,在段落末尾“,”前,插入“+”号作为标记。
3.每个段落中,随机插入字母形成新的字母序列段,当段号小于8时加密字母在字母序列中存放位置刚好是该段落号,位置以8为周期,第9段时,加密字母存放位置回到字母序列的第1位,第10段加密字母存放位置回到第2位,依次类推。(位置号<=8)
4.在每一段中随机插入除英文字母之外的ASCII图形字符码,形成一串密文。如图所示:
(1)若密文字符串为:“!@8G+*y/$#r~!s,f?[:a34c33!<e=w,123#r@/{t++*%&M2s7s,+h@f$5/j+*^e.?i*,/6*+e$(c3~/:p-)h->w%&3@w!@,4/*i#$@+m!j65&*(kr+^$k++k#l,”
则根据加密算法,解密后的明文为 ▲
(2)为了寻找密文中隐藏的信息,小明编写了一段VB解密程序,代码如下,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim i As Integer, k As Integer
Dim s As String, c As String, ch As String
Dim letter As String, ret As String 'letter用于存放字母序列
s = Text1.Text
k = 1
For i = 1 To Len(s)
c = Mid(s, i, 1)
If c >= "A" And c <= "Z" Or c >= "a" And c <= "z" Then
letter = letter + c
ElseIf c = "," Then
①
ch = Chr(Asc(ch) + 4)
If Not (ch >= "A" And ch <= "Z" Or ch >= "a" And ch <= "z") Then
ch = Chr(Asc(ch) - 26)
End If
If ② Then
ret = ret + ch + " "
Else
ret = ret + ch
End If
③
k = k + 1
End If
Next i
Text2.Text = ret
End Sub