字符加密:用 VB 编写某字符串加密解密程序(仅针对 ASCII 码字符)。其加密过程如下:
1)对待加密的字符进行判断,如果是英文字符的,则将该字符后移2位(如:字符“A”转换成“C”,字符“Z”转换成“B”,字符“a”转换成“c”,字符“z”转换成“b”),其他字符保持不变;
2)求出每个字符的ASCII码,然后用7位二进制来表示,比如“4”的ASCII码为十进制52,转换为7位二进制为“0110100”;
3)从左至右依次记为第1,2,3……7位,分别把第3,4,5位取反。即0变1,1变0,至此“0110100”变为“0101000”,将此二进制转换为ASCII码为40,对应的字符为左括号“(”,即“4”经过加密后得到加密字符为左括号“(”。
在文本框Text1中输入ASCII字符,单击“加密”按钮Command1,则在文本框Text2中显示经过加密的字符。程序界面如图所示,请完成下列问题。
(1)
若在文本框Text1中输入字符“4My5”,则在文本框Text2中显示的加密字符为。
(2)
实现上述功能的 VB 程序如下, 请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim s As String, ch As String s =
Text1.Text
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If ch >= "A" And ch <=
"Z" Then
ElseIf ch >= "a" And
ch <= "z" Then '让小写字母后移2位,代码略
End If
Text2.Text = Text2.Text +
Next i
End Sub
Function jm(x As String) As
String
Dim a(1 To 7) As Integer, j As Integer, n
As Integer, asc1 As Integer
asc1 = Asc(x)
n = 0
For j = 7 To 1 Step -1
If j = 3 Or j = 4 Or j = 5 Then a(j) =
1 - asc1 Mod 2
Else
a(j) = asc1 Mod 2
End If
n =
asc1 = asc1 \ 2
Next j
jm = Chr(n)
End Function
答案: 【1】(S})
【1】ch = Chr((Asc(ch) - Asc("A") +2) Mod 26 + Asc("A")) 或 ch = Chr((Asc(ch) -63) Mod 26 + 65)【2】jm(ch)【3】n + a(j) * 2 ^ (7 - j)