小明设计一种简易的加密方式,规则如下:
A)在输入的字符串中提取英文字母,作为需要加密的明文(明文字符数必须是3的倍数,不足3位的舍去)
B)将明文ASCII码分成3个字节一组,顺次连接后得到24位二进制数;
C)将得到的24位二进制数字按每6位一组分成4组,每组6个位;
D)在C)中得到的6个位前补上2个0,得到8个字节的二进制数;
E)将D)中得到的8个二进制数分别转换为十进制数;
F)将得到的数字用随机产生的大写字母连接起来,以大写字母结尾
按照上述规则,设计了一个加密VB程序,功能如下:单击“加密”按钮Command1,程序依次将文本框Text1中英文字母提取,将3的倍数个的字母转换为4个数字,并输出在文本框Text2中程序运行效果如下图所示。请回答下列问题:
(1)
在Text1中输入A9B20C@D1E,已知产生的随机字符顺序为英文字母表,则在Text2中显示的是。
(2)
请在划线处填入合适代码。
Private Sub Command1_ Click()
Const maxn= 100
Dim s As String, i As Integer,
n As Integer
Dim ch As String, k As Integer,
jg As String
Dim a(1 To maxn) As Integer,
b(1 To maxn) As Integer
s= Text1. Text
n=0
For i=1 To Len(s)
ch= Mid(s, i, 1)
If Then
n=n+1
a(n)=
Asc(ch)
End
If
Next i
For i=0 To k
b(i * 4+1)=a(i*3+1)\ 4
b(i*4+2)=
b(i*4+3)=(a(i*3+2)Mod16)* 4+a((i- 1) *3+3)\ 64
b(i*4+4)=a(i*3+3)Mod64
Next i
Randomize
jd= ""
For i=1 To 4 * (k+1)
jd=jd+Str(b(i)) +
Next i
Text2. Text=jd
End Sub
Function pd(c As String) As Boolean
pd= False
If c>="A" And c<="Z"
Or c>="a" And c<="z" Then:
pd= True
End If
End Function
答案: 【1】16A20B9C3D
【1】pd(ch)【2】k=n\3 -1【3】(a(i* 3+1)Mod4)*16+a(i*3+2)\16【4】Chr(Int(Rnd * 26 + 65))